CN112764713A - 随机数的生成方法和装置 - Google Patents
随机数的生成方法和装置 Download PDFInfo
- Publication number
- CN112764713A CN112764713A CN202110094963.2A CN202110094963A CN112764713A CN 112764713 A CN112764713 A CN 112764713A CN 202110094963 A CN202110094963 A CN 202110094963A CN 112764713 A CN112764713 A CN 112764713A
- Authority
- CN
- China
- Prior art keywords
- random number
- value
- pseudo
- additional value
- additional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 40
- 238000004364 calculation method Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明实施例提供了一种随机数的生成方法和装置,该方法包括:获取所要生成的随机数的边界值;其中,边界值包括随机数的最大值和最小值,且最大值大于最小值;利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,伪随机数P满足:0≤P≤2X‑1,X为正整数;利用边界值和伪随机数确定随机数的附加值;利用边界值和附加值确定随机数。本方案能够直接得到指定范围内的随机数,从而避免采取多次和边界值进行比较来得到满足条件的随机数的方式。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及随机数的生成方法和装置。
背景技术
网络测试仪的一项重要功能是可以产生指定范围内的随机包长和报文净荷。除了需要保证功能正确之外,还要求具有较高的性能以满足高速以太网线速发包的要求,因此网络测试仪通常使用现场可编程门阵列FPGA实现各种发包功能。
FPGA中具有丰富的硬件资源可用于实现线性反馈移位寄存器(Linear FeedbackShift Register,LFSR),并且利用并行计算的方法每个时钟周期均可以生成一个伪随机数。因此,现阶段通常采用将LFSR输出的伪随机二进制序列作为随机数的输出结果。然而该方法无法保证生成的随机数位于指定的范围内。
因此,本方案需要提供一种随机数的生成方案。
发明内容
本发明实施例提供了随机数的生成方法和装置,能够直接得到指定范围内的随机数,从而避免采取多次和边界值进行比较来得到满足条件的随机数。
第一方面,本发明实施例提供了一种随机数的生成方法,该方法包括:
获取所要生成的随机数的边界值;其中,所述边界值包括所述随机数的最大值和最小值,且所述最大值大于所述最小值;
利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,所述伪随机数P满足:0≤P≤2X-1,X为正整数;
利用所述边界值和所述伪随机数确定随机数的附加值;
利用所述边界值和所述附加值确定所述随机数。
在一种可能的实现方式中,所述利用所述边界值和所述伪随机数确定随机数的附加值,包括:
利用公式Range=Max-Min+1计算所述随机数的范围值Range;其中,Max为所述随机数的最大值,Min为所述随机数的最小值;
将二进制形式的所述伪随机数P转换为十进制形式的伪随机数P*,并利用公式M=Range×P*计算初级附加值M;
根据所述初级附加值确定所述附加值。
在一种可能的实现方式中,所述根据所述初级附加值确定所述附加值,包括:
根据十进制形式的所述初级附加值M,利用公式N=M/(2^X)计算十进制形式的所述附加值N;
和/或,
将十进制形式的所述初级附加值M转换为二进制形式的初级附加值M*;
将二进制形式的所述初级附加值M*右移X位得到二进制形式的附加值N*;
将二进制形式的所述附加值N*转换为十进制形式的附加值N。
在一种可能的实现方式中,所述利用所述边界值和所述附加值确定所述随机数,包括:
根据所述随机数的最小值Min和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Min+N
和/或,
根据所述随机数的最大值Max和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Max-N。
在一种可能的实现方式中,
当利用所述伪随机数生成算法为首次生成所述伪随机数P时,所述伪随机数生成算法的输入项为预先设定的输入初值;
和/或,
当利用所述伪随机数生成算法为非首次生成所述伪随机数P时,所述伪随机数生成算法的输入项为上一次生成的伪随机数P。
本发明实施例还提供了一种随机数的生成装置,该装置包括:获取模块、伪随机数生成模块、第一确定模块和第二确定模块;
所述获取模块,用于获取所要生成的随机数的边界值;其中,所述边界值包括所述随机数的最大值和最小值,且所述最大值大于所述最小值;
所述伪随机数生成模块,用于利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,所述伪随机数P满足:0≤P≤2X-1,X为正整数;
所述第一确定模块,用于利用所述获取模块获取到的所述边界值和所述伪随机数生成模块生成的所述伪随机数确定随机数的附加值;
所述第二确定模块,用于利用所述获取模块获取到的所述边界值和所述第一确定模块确定的所述附加值确定所述随机数。
在一种可能的实现方式中,所述第一确定模块,用于执行如下操作:
利用公式Range=Max-Min+1计算所述随机数的范围值Range;其中,Max为所述随机数的最大值,Min为所述随机数的最小值;
将二进制形式的所述伪随机数P转换为十进制形式的伪随机数P*,并利用公式M=Range×P*计算初级附加值M;
根据所述初级附加值确定所述附加值。
在一种可能的实现方式中,所述第一确定模块,用于执行如下操作:
根据十进制形式的所述初级附加值M,利用公式N=M/(2^X)计算十进制形式的所述附加值N;
和/或,
将十进制形式的所述初级附加值M转换为二进制形式的初级附加值M*;
将二进制形式的所述初级附加值M*右移X位得到二进制形式的附加值N*;
将二进制形式的所述附加值N*转换为十进制形式的附加值N。
在一种可能的实现方式中,所述第一确定模块,用于执行如下操作:
根据所述随机数的最小值Min和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Min+N
和/或,
根据所述随机数的最大值Max和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Max-N。
在一种可能的实现方式中,
当所述伪随机数生成模块利用伪随机数生成算法首次生成位数为X的二进制形式的伪随机数P时,所述伪随机数生成算法的输入项为预先设定的输入初值;
和/或,
当所述伪随机数生成模块利用伪随机数生成算法非首次生成位数为X的二进制形式的伪随机数P时,所述伪随机数生成算法的输入项为上一次生成的伪随机数P。
由上述技术方案可知,当要生成指定范围内的随机数时,首先获得该指定范围的边界值,即边界的最大值和最小值,然后利用伪随机数生成算法生成一个位数为X的二进制形式的伪随机数,如此通过边界值和该伪随机数可以确定出所要生成的随机数的附加值,进一步再通过边界值和该附加值确定出指定范围内的随机数。由此可见,本方案通过将所要生成的随机数满足的边界范围考虑到生成过程中,然后利用边界值和附加值直接得到满足指定范围条件的随机数,避免了生成的随机数超出了指定范围而导致进行多次数据生成的繁琐。因此能够大大简化计算过程,提高处理器的执行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种随机数的生成方法的流程图;
图2是本发明一个实施例提供的一种线性反馈移位寄存器的执行逻辑示意图;
图3是本发明一个实施例提供的一种随机数的生成装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种随机数的生成方法,该方法可以包括:
步骤101:获取所要生成的随机数的边界值;其中,边界值包括随机数的最大值和最小值,且最大值大于最小值;
步骤102:利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,伪随机数P满足:0≤P≤2X-1,X为正整数;
步骤103:利用边界值和伪随机数确定随机数的附加值;
步骤104:利用边界值和附加值确定随机数。
在本发明实施例中,当要生成指定范围内的随机数时,首先获得该指定范围的边界值,即边界的最大值和最小值,然后利用伪随机数生成算法生成一个位数为X的二进制形式的伪随机数,如此通过边界值和该伪随机数可以确定出所要生成的随机数的附加值,进一步再通过边界值和该附加值确定出指定范围内的随机数。由此可见,本方案通过将所要生成的随机数满足的边界范围考虑到生成过程中,然后利用边界值和附加值直接得到满足指定范围条件的随机数,避免了生成的随机数超出了指定范围而导致进行多次数据生成的繁琐。因此能够大大简化计算过程,提高处理器的执行效率。
在一种可能的实现方式中,在利用边界值和伪随机数确定随机数的附加值时,具体可以通过如下方式来获得:
利用公式Range=Max-Min+1计算随机数的范围值Range;其中,Max为随机数的最大值,Min为随机数的最小值;
将二进制形式的伪随机数P转换为十进制形式的伪随机数P*,并利用公式M=Range×P*计算初级附加值M;
根据初级附加值确定附加值。
在本发明实施例中,在利用边界值和伪随机数确定随机数时,可以先利用边界值中的最大值和最小值计算随机数的范围值,然后将二进制形式的伪随机数转换成十进制形式的伪随机数,并通过计算该十进制形式的伪随机数和范围值的乘积来得到初级附加值,从而进一步根据该初级附加值确定出附加值。由此可见,本方案通过将边界值融入到了生成随机数的计算过程中,而不是将边界值作为与随机生成的数的比较对象,因此本方案能够实现直接得到随机数,避免了将随机生成的数与边界值进行比较以决定是否需要再次重新生成的繁琐。
在一种可能的实现方式中,在根据初级附加值确定附加值时,具体可以采用以下两种方式来实现:
实施方式一:
根据十进制形式的初级附加值M,利用公式N=M/(2^X)计算十进制形式的附加值N;
实施方式二:
将十进制形式的初级附加值M转换为二进制形式的初级附加值M*;
将二进制形式的初级附加值M*右移X位得到二进制形式的附加值N*;
将二进制形式的附加值N*转换为十进制形式的附加值N。
在本发明实施例中,在根据初级附加值确定附加值时,可以任意选择以上两种方式中的任一一种来计算附加值。可以通过十进制形式的初级附加值,利用公式来计算得到,也可以转换为二进制形式,然后通过移位的方式来得到。所以本方案提供了两种方式可供选择,而且可以根据不同的应用场景选用不同的实施方式。比如普通的随机数生成中,可以采用十进制的方式来得到;再比如,在通信领域中生成指定范围内的随机包长和报文净荷时,可以采用处理器更容易进行处理的二进制形式的方式。因此,本方案可选择性强,尤其采用二进制形式时能够简化计算,提升处理器的执行效率。
在一种可能的实施方式中,在利用边界值和附加值确定随机数时,可以选择采用以下两种方式实现:
实施方式一:
根据随机数的最小值Min和十进制形式的附加值N,利用如下公式计算随机数R:
R=Min+N
实施方式二:
根据随机数的最大值Max和十进制形式的附加值N,利用如下公式计算随机数R:
R=Max-N。
在本发明实施例中,当计算得到了附加值后,可以考虑利用最小值和附加值的和来计算得到随机数,还可以考虑利用最大值和附加值的差来计算得到随机数。由于附加值是小于最大值和最小值的差值的非负数,因此通过上述两种方式得到的随机数不仅都能满足位于指定范围内,即能够直接得到随机数,而且为随机数的确定方法提供了多选择方式。
在一种可能的实现方式中,在生成伪随机数时,会存在以下两种情况:
情况一:
当利用伪随机数生成算法为首次生成伪随机数P时,伪随机数生成算法的输入项为预先设定的输入初值;
情况二:
当利用伪随机数生成算法为非首次生成伪随机数P时,伪随机数生成算法的输入项为上一次生成的伪随机数P。
在本发明实施例中,在利用伪随机数生成算法生成伪随机数时,如果为首次生成,则该伪随机数生成算法的输入项可以为预先设定的输入初值;而如果不是首次生成,则该伪随机数生成算法的输入项可以为上一次生成的伪随机数,如此可以避免了每次生成伪随机数时都为输入项设定初值,而且通过将上一次输出的伪随机数作为当前输入项能增强每次伪随机数生成时的关联性,这在同一段时间内随机包长和报文净荷的生成过程中更容易实现,从而也能够提升处理器的性能。
下面以在网络通信中的应用对本发明实施例提供的随机数的生成方法作进一步的说明:
由上,网络测试仪的一项重要功能是可以产生指定范围内的随机包长和报文净荷。除了需要保证功能正确之外,还要求具有较高的性能以满足高速以太网线速发包的要求,因此网络测试仪通常使用现场可编程门阵列FPGA实现各种发包功能。在生成随机数时所采用的常用方法是利用线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)产生的伪随机二进制序列(Pseudo-Random Binary Sequence,PRBS)。例如PRBS-15,其本原多项式为x^15+x^14+1,LFSR的结构如图2所示,其中每个方框代表一个移位寄存器,共15个,+代表异或运算。由图2可以看出,在生成伪随机数时,当为非首次生成时,会将每一次的输出作为下一次的输入来产生随机数,即在首次确定输入初值后,之后将每次计算的输出作为下一次计算的输入,每产生一个随机数计算一次伪随机数。
FPGA中具有丰富的硬件资源可用于实现LFSR,并且利用并行计算的方法每个时钟周期均可以生成一个15bit的伪随机数,其范围时0~32767(215-1)。那么如果想生成一个指定范围内的随机数,如果按照将上面LFSR输出的PRBS-15序列作为结果,那么很可能超出指定的范围之外,这是就需要将结果和指定范围的最大和最小值边界进行比较,如果超出边界则需要重新计算或者采取其他额外的处理。为此,本发明给出一种直接得到指定范围内随机数的方法,具有计算简单、性能高和易于FPGA实现的优点。
本方案的基本思想是用边界差值Range(=最大值-最小值+1)乘以一个大于等于零小于1的随机系数,再与最小值相加,或者用最大值减去该随机系数,从而得到一个位于最小值和最大值之间的随机值。
在该基本思想中,该方案可以应用于网络通信领域生成正整数序列,也可以用来生成任一的非负数。指的注意的是,当本方案应用于网络通信领域生成正整数序列时,边界差值Range与随机系数作乘积后需要取整。比如要求生成的随机数R满足:9≤R≤10,随机系数为0.9,如此Range的值为10-9+1=2,其乘以随机系数为2*0.9=1.8,此时需要对得到的1.8进行取整,即为1,如此得到的随机数可以为9+1=10,也可以为10-1=9。
以下通过产生一个15位的二进制伪随机数来说明,在产生一个随机数R时,满足Min≤R≤Max,其中Min<Max,且Min、Max和R均为无符号数。具体实现步骤如下:
(1)首先计算范围值Range=Max-Min+1;
(2)利用LFSR生成一个15bit的伪随机数P,有0≤P≤32767。本原多项式满足PRBS-15,初值为任意非0常数,之后将每次计算的输出P作为下一次计算的输入,每产生一个随机数R计算一次P;
(3)利用乘法器计算无符号数乘法,得到乘积M=Range*P;
(4)用M除以32768(=215)得到N,这里可以用逻辑移位操作代替除法计算,即将乘积M右移15位得到N,N=M>>15;
(5)得到随机数R=Min+N或R=Max-N。
对于FPGA,上述操作过程中涉及的移位和逻辑运算可以十分方便的使用寄存器和查找表(Look Up Table,LUT)实现,乘法器则可以使用数字信号处理单元DSP实现。这些资源在FPGA中不仅十分丰富,而且具有很高的性能,因而可以满足高速以太网线速发包的应用需求。
需要指出的是,上述仅以15位的伪随机数进行了说明,在实际应用过程中可使用的PRBS序列包括但不仅限于PRBS-15,其他序列诸如PRBS-23,PRBS-31等亦可使用。如果使用PRBS-X,则移位时需要右移X位。
由上述可知,本方案使用PRBS作为随机系数,通过简单的计算直接得到指定范围内的随机数。实现层面,用简单的移位操作代替FPGA不易实现的除法运算,从而简化了计算过程,易于FPGA实现且能够达到很高的性能,可应用于100G及以上线速随机包长或报文净荷产生。
如图3所示,本发明实施例还提供了一种随机数的生成装置,该装置可以包括:获取模块301、伪随机数生成模块302、第一确定模块303和第二确定模块304;
获取模块301,用于获取所要生成的随机数的边界值;其中,边界值包括随机数的最大值和最小值,且最大值大于最小值;
伪随机数生成模块302,用于利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,伪随机数P满足:0≤P≤2X-1,X为正整数;
第一确定模块303,用于利用获取模块301获取到的边界值和伪随机数生成模块302生成的伪随机数确定随机数的附加值;
第二确定模块304,用于利用获取模块301获取到的边界值和第一确定模块303确定的附加值确定随机数。
如图3所示的随机数的生成装置,在一种可能的实现方式中,第一确定模块303,用于执行如下操作:
利用公式Range=Max-Min+1计算随机数的范围值Range;其中,Max为随机数的最大值,Min为随机数的最小值;
将二进制形式的伪随机数P转换为十进制形式的伪随机数P*,并利用公式M=Range×P*计算初级附加值M;
根据初级附加值确定附加值。
如图3所示的随机数的生成装置,在一种可能的实现方式中,第一确定模块303,用于执行如下操作:
根据十进制形式的初级附加值M,利用公式N=M/(2^X)计算十进制形式的附加值N;
如图3所示的随机数的生成装置,在另一种可能的实现方式中,第一确定模块303,用于执行如下操作:
将十进制形式的初级附加值M转换为二进制形式的初级附加值M*;
将二进制形式的初级附加值M*右移X位得到二进制形式的附加值N*;
将二进制形式的附加值N*转换为十进制形式的附加值N。
如图3所示的随机数的生成装置,在一种可能的实现方式中,第一确定模块303,用于执行如下操作:
根据随机数的最小值Min和十进制形式的附加值N,利用如下公式计算随机数R:
R=Min+N
如图3所示的随机数的生成装置,在另一种可能的实现方式中,第一确定模块303,用于执行如下操作:
根据随机数的最大值Max和十进制形式的附加值N,利用如下公式计算随机数R:
R=Max-N。
如图3所示的随机数的生成装置,在一种可能的实现方式中,
当伪随机数生成模块302利用伪随机数生成算法首次生成位数为X的二进制形式的伪随机数P时,伪随机数生成算法的输入项为预先设定的输入初值;
和/或,
当伪随机数生成模块302利用伪随机数生成算法非首次生成位数为X的二进制形式的伪随机数P时,伪随机数生成算法的输入项为上一次生成的伪随机数P。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本说明书还提供了一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,实现说明书中任一个实施例中的方法。
可以理解的是,本发明实施例示意的结构并不构成对随机数的生成装置的具体限定。在本发明的另一些实施例中,随机数的生成装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
综上,本发明各个实施例至少可以实现如下有益效果:
1、在本发明实施例中,当要生成指定范围内的随机数时,首先获得该指定范围的边界值,即边界的最大值和最小值,然后利用伪随机数生成算法生成一个位数为X的二进制形式的伪随机数,如此通过边界值和该伪随机数可以确定出所要生成的随机数的附加值,进一步再通过边界值和该附加值确定出指定范围内的随机数。由此可见,本方案通过将所要生成的随机数满足的边界范围考虑到生成过程中,然后利用边界值和附加值直接得到满足指定范围条件的随机数,避免了生成的随机数超出了指定范围而导致进行多次数据生成的繁琐。因此能够大大简化计算过程,提高处理器的执行效率。
2、在本发明实施例中,在利用边界值和伪随机数确定随机数时,可以先利用边界值中的最大值和最小值计算随机数的范围值,然后二进制形式的伪随机数转换成十进制形式的伪随机数,并通过计算该十进制形式的伪随机数和范围值的乘积来得到初级附加值,从而进一步根据该初级附加值确定出附加值。由此可见,本方案通过将边界值融入到了生成随机数的计算过程中,而不是将边界值作为与随机生成的数的比较对象,因此本方案能够实现直接得到随机数,避免了将随机生成的数与边界值进行比较以决定是否需要再次重新生成的繁琐。
3、在本发明实施例中,在根据初级附加值确定附加值时,可以任意选择以上两种方式中的任一一种来计算附加值。可以通过十进制形式的初级附加值,利用公式来计算得到,也可以转换为二进制形式,然后通过移位的方式来得到。所以本方案提供了两种方式可供选择,而且可以根据不同的应用场景选用不同的实施方式。比如普通的随机数生成中,可以采用十进制的方式来得到;再比如,在通信领域中生成指定范围内的随机包长和报文净荷时,可以采用处理器更容易进行处理的二进制形式的方式。因此,本方案可选择性强,尤其采用二进制形式时能够简化计算,提升处理器的执行效率。
4、在本发明实施例中,当计算得到了附加值后,可以考虑利用最小值和附加值的和来计算得到随机数,还可以考虑利用最大值和附加值的差来计算得到随机数。由于附加值是小于最大值和最小值的差值的非负数,因此通过上述两种方式得到的随机数不仅都能满足位于指定范围内,即能够直接得到随机数,而且为随机数的确定方法提供了多选择方式。
5、在本发明实施例中,在利用伪随机数生成算法生成伪随机数时,如果为首次生成,则该伪随机数生成算法的输入项可以为预先设定的输入初值;而如果不是首次生成,则该伪随机数生成算法的输入项可以为上一次生成的伪随机数,如此可以避免了每次生成伪随机数时都为输入项设定初值,而且通过将上一次输出的伪随机数作为当前输入项能增强每次伪随机数生成时的关联性,这在同一段时间内随机包长和报文净荷的生成过程中更容易实现,从而也能够提升处理器的性能。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.随机数的生成方法,其特征在于,包括:
获取所要生成的随机数的边界值;其中,所述边界值包括所述随机数的最大值和最小值,且所述最大值大于所述最小值;
利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,所述伪随机数P满足:0≤P≤2X-1,X为正整数;
利用所述边界值和所述伪随机数确定随机数的附加值;
利用所述边界值和所述附加值确定所述随机数。
2.根据权利要求1所述的方法,其特征在于,所述利用所述边界值和所述伪随机数确定随机数的附加值,包括:
利用公式Range=Max-Min+1计算所述随机数的范围值Range;其中,Max为所述随机数的最大值,Min为所述随机数的最小值;
将二进制形式的所述伪随机数P转换为十进制形式的伪随机数P*,并利用公式M=Range×P*计算初级附加值M;
根据所述初级附加值确定所述附加值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述初级附加值确定所述附加值,包括:
根据十进制形式的所述初级附加值M,利用公式N=M/(2^X)计算十进制形式的所述附加值N;
和/或,
将十进制形式的所述初级附加值M转换为二进制形式的初级附加值M*;
将二进制形式的所述初级附加值M*右移X位得到二进制形式的附加值N*;
将二进制形式的所述附加值N*转换为十进制形式的附加值N。
4.根据权利要求3所述的方法,其特征在于,所述利用所述边界值和所述附加值确定所述随机数,包括:
根据所述随机数的最小值Min和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Min+N
和/或,
根据所述随机数的最大值Max和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Max-N。
5.根据权利要求1所述的方法,其特征在于,
当利用所述伪随机数生成算法为首次生成所述伪随机数P时,所述伪随机数生成算法的输入项为预先设定的输入初值;
和/或,
当利用所述伪随机数生成算法为非首次生成所述伪随机数P时,所述伪随机数生成算法的输入项为上一次生成的伪随机数P。
6.随机数的生成装置,其特征在于,包括:获取模块、伪随机数生成模块、第一确定模块和第二确定模块;
所述获取模块,用于获取所要生成的随机数的边界值;其中,所述边界值包括所述随机数的最大值和最小值,且所述最大值大于所述最小值;
所述伪随机数生成模块,用于利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,所述伪随机数P满足:0≤P≤2X-1,X为正整数;
所述第一确定模块,用于利用所述获取模块获取到的所述边界值和所述伪随机数生成模块生成的所述伪随机数确定随机数的附加值;
所述第二确定模块,用于利用所述获取模块获取到的所述边界值和所述第一确定模块确定的所述附加值确定所述随机数。
7.根据权利要求6所述的装置,其特征在于,
所述第一确定模块,用于执行如下操作:
利用公式Range=Max-Min+1计算所述随机数的范围值Range;其中,Max为所述随机数的最大值,Min为所述随机数的最小值;
将二进制形式的所述伪随机数P转换为十进制形式的伪随机数P*,并利用公式M=Range×P*计算初级附加值M;
根据所述初级附加值确定所述附加值。
8.根据权利要求7所述的装置,其特征在于,
所述第一确定模块,用于执行如下操作:
根据十进制形式的所述初级附加值M,利用公式N=M/(2^X)计算十进制形式的所述附加值N;
和/或,
将十进制形式的所述初级附加值M转换为二进制形式的初级附加值M*;
将二进制形式的所述初级附加值M*右移X位得到二进制形式的附加值N*;
将二进制形式的所述附加值N*转换为十进制形式的附加值N。
9.根据权利要求8所述的装置,其特征在于,
所述第一确定模块,用于执行如下操作:
根据所述随机数的最小值Min和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Min+N
和/或,
根据所述随机数的最大值Max和十进制形式的所述附加值N,利用如下公式计算所述随机数R:
R=Max-N。
10.根据权利要求6所述的装置,其特征在于,
当所述伪随机数生成模块利用伪随机数生成算法首次生成位数为X的二进制形式的伪随机数P时,所述伪随机数生成算法的输入项为预先设定的输入初值;
和/或,
当所述伪随机数生成模块利用伪随机数生成算法非首次生成位数为X的二进制形式的伪随机数P时,所述伪随机数生成算法的输入项为上一次生成的伪随机数P。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110094963.2A CN112764713B (zh) | 2021-01-25 | 2021-01-25 | 随机数的生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110094963.2A CN112764713B (zh) | 2021-01-25 | 2021-01-25 | 随机数的生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764713A true CN112764713A (zh) | 2021-05-07 |
CN112764713B CN112764713B (zh) | 2024-04-26 |
Family
ID=75707028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110094963.2A Active CN112764713B (zh) | 2021-01-25 | 2021-01-25 | 随机数的生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764713B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113411268A (zh) * | 2021-05-24 | 2021-09-17 | 深圳市元征未来汽车技术有限公司 | 一种数据传输方法、数据传输装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1668995A (zh) * | 2002-06-06 | 2005-09-14 | 克瑞迪科公司 | 用于改善伪随机数发生器的输出的不可预测性的方法 |
CN1725714A (zh) * | 2004-07-20 | 2006-01-25 | 华为技术有限公司 | 伪随机数产生装置及利用其实现的测试系统 |
CN101364868A (zh) * | 2008-09-12 | 2009-02-11 | 华南理工大学 | 基于广义信息域的伪随机码发生器及其发生方法 |
CN101950496A (zh) * | 2010-01-04 | 2011-01-19 | 代利忠 | 计算类型题目随机出题及答案生成的方法 |
CN103635874A (zh) * | 2011-07-07 | 2014-03-12 | 约瑟夫·杰勒德·缪斯 | 基于数字影像中的微观结构和噪声提供便携式真随机数发生器的方法 |
CN105426159A (zh) * | 2015-12-22 | 2016-03-23 | 上海爱信诺航芯电子科技有限公司 | 一种基于数字电路的真随机数发生器 |
CN105913536A (zh) * | 2016-05-24 | 2016-08-31 | 上海申彩信息系统有限公司 | 一种自动音乐摇奖机及摇奖方法 |
CN106973442A (zh) * | 2017-05-09 | 2017-07-21 | 北京科技大学 | 一种竞争窗口最小值的自适应调整方法及装置 |
CN109995303A (zh) * | 2017-12-29 | 2019-07-09 | 东南大学 | 一种基于调节电流斩波限降低开关磁阻电机噪声的方法 |
CN111383202A (zh) * | 2018-12-27 | 2020-07-07 | 三星电子株式会社 | 显示装置及其图像处理方法 |
-
2021
- 2021-01-25 CN CN202110094963.2A patent/CN112764713B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1668995A (zh) * | 2002-06-06 | 2005-09-14 | 克瑞迪科公司 | 用于改善伪随机数发生器的输出的不可预测性的方法 |
CN1725714A (zh) * | 2004-07-20 | 2006-01-25 | 华为技术有限公司 | 伪随机数产生装置及利用其实现的测试系统 |
CN101364868A (zh) * | 2008-09-12 | 2009-02-11 | 华南理工大学 | 基于广义信息域的伪随机码发生器及其发生方法 |
CN101950496A (zh) * | 2010-01-04 | 2011-01-19 | 代利忠 | 计算类型题目随机出题及答案生成的方法 |
CN103635874A (zh) * | 2011-07-07 | 2014-03-12 | 约瑟夫·杰勒德·缪斯 | 基于数字影像中的微观结构和噪声提供便携式真随机数发生器的方法 |
CN105426159A (zh) * | 2015-12-22 | 2016-03-23 | 上海爱信诺航芯电子科技有限公司 | 一种基于数字电路的真随机数发生器 |
CN105913536A (zh) * | 2016-05-24 | 2016-08-31 | 上海申彩信息系统有限公司 | 一种自动音乐摇奖机及摇奖方法 |
CN106973442A (zh) * | 2017-05-09 | 2017-07-21 | 北京科技大学 | 一种竞争窗口最小值的自适应调整方法及装置 |
CN109995303A (zh) * | 2017-12-29 | 2019-07-09 | 东南大学 | 一种基于调节电流斩波限降低开关磁阻电机噪声的方法 |
CN111383202A (zh) * | 2018-12-27 | 2020-07-07 | 三星电子株式会社 | 显示装置及其图像处理方法 |
Non-Patent Citations (1)
Title |
---|
蔡敏等: "无线体域网中轻量级数据融合算法仿真", 《计算机仿真》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113411268A (zh) * | 2021-05-24 | 2021-09-17 | 深圳市元征未来汽车技术有限公司 | 一种数据传输方法、数据传输装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112764713B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2633858C (en) | Mixed radix conversion with a priori defined statistical artifacts | |
US7921145B2 (en) | Extending a repetition period of a random sequence | |
US8180055B2 (en) | Cryptographic system incorporating a digitally generated chaotic numerical sequence | |
US7962540B2 (en) | Mixed radix number generator with chosen statistical artifacts | |
US8363830B2 (en) | Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts | |
Dastgheib et al. | A digital pseudo-random number generator based on sawtooth chaotic map with a guaranteed enhanced period | |
Lemire et al. | Strongly universal string hashing is fast | |
CN112764713A (zh) | 随机数的生成方法和装置 | |
US8225100B2 (en) | Hash functions using recurrency and arithmetic | |
CN112737778B (zh) | 数字签名生成、验证方法及装置、电子设备及存储介质 | |
Perrin et al. | Collision spectrum, entropy loss, T-sponges, and cryptanalysis of GLUON-64 | |
Kolokotronis et al. | Minimum linear span approximation of binary sequences | |
KR950010452B1 (ko) | 유한체상의 역수 산출방법 및 장치 | |
Pandian et al. | Five decade evolution of feedback shift register: algorithms, architectures and applications | |
JPH11224183A (ja) | 擬似乱数発生装置 | |
Rao | An open source software package for primality testing of numbers of the form p2^ n+ 1, with no constraints on the relative sizes of p and 2^ n | |
CN115765975B (zh) | Sha-256算法的低功耗实现方法、芯片、服务器及存储介质 | |
Vivelid | Nonlinear feedback shift registers and generating of binary de Bruijn sequences | |
Bookstein et al. | TS-Hash: a lightweight cryptographic hash family based on Galois LFSRs | |
Knezevic et al. | Modular reduction without precomputational phase | |
CN107846272B (zh) | 一种Golden序列的快速生成装置及方法 | |
Stamenković | ISOMORPHIC TRANSFORMATION AND ITS APPLICATION TO THE MODULO (2^ n+ 1) CHANNEL FOR RNS BASED FIR FILTER DESIGN | |
Cryptosystem et al. | Wen Wang¹ (), Jakub Szefer¹ (), and Ruben Niederhagen2 () 1 Yale University, New Haven, CT, USA {wen. wang. ww349, jakub. szefer}@ yale. edu 2 Fraunhofer SIT, Darmstadt, Germany ruben@ polycephaly. org | |
US8363825B1 (en) | Device for and method of collision-free hashing for near-match inputs | |
REDDY et al. | Implementation of High Performance Montgomery Multiplier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |