随机数的生成方法和装置制造方法及图纸

技术编号:28372532 阅读:33 留言:0更新日期:2021-05-07 23:59
本发明专利技术实施例提供了一种随机数的生成方法和装置,该方法包括:获取所要生成的随机数的边界值;其中,边界值包括随机数的最大值和最小值,且最大值大于最小值;利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,伪随机数P满足:0≤P≤2

【技术实现步骤摘要】
随机数的生成方法和装置
本专利技术涉及网络通信
,特别涉及随机数的生成方法和装置。
技术介绍
网络测试仪的一项重要功能是可以产生指定范围内的随机包长和报文净荷。除了需要保证功能正确之外,还要求具有较高的性能以满足高速以太网线速发包的要求,因此网络测试仪通常使用现场可编程门阵列FPGA实现各种发包功能。FPGA中具有丰富的硬件资源可用于实现线性反馈移位寄存器(LinearFeedbackShiftRegister,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.随机数的生成方法,其特征在于,包括:/n获取所要生成的随机数的边界值;其中,所述边界值包括所述随机数的最大值和最小值,且所述最大值大于所述最小值;/n利用伪随机数生成算法生成位数为X的二进制形式的伪随机数P;其中,所述伪随机数P满足:0≤P≤2

【技术特征摘要】
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.随机数的生成装置,其特征在于,包括:获取模块、伪随机数生成模块、第一确定模块和第二确定模块;
所述获取模块,用于获取...

【专利技术属性】
技术研发人员:高宇
申请(专利权)人:北京信而泰科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1