【技术实现步骤摘要】
本专利技术涉及随机数
,尤其涉及一种随机数的生成方法及系统。
技术介绍
随机数在计算机软件、硬件、信息安全、抽奖系统等等领域都有着非常广泛的应用,因而如何得到随机性高的随机数就显得非常重要。现有技术中得到随机数通常采用以下两种方式。第一,系统软件实现,通过纯软件系统生成的随机数是采用各种算法计算出来的随机数,通常称为伪随机数。目前,要得到优质的伪随机数,就不停地在算法上进行改进,如公开号为CN102520908A号专利申请中采用的双曲平方算法得到伪随机数,这样的方法一方面随机性不够另外一方面计算量太大,系统开销大。第二,采用硬件电路实现,硬件电路一般可以采用晶体管噪音作为生成“O”和 “ I ”的物理随机数,但这种硬件电路产生随机数的成本随着随机数列中元素数量的增加,成本也增加较多。比如要需要对70亿零I个数据进行随机排列,那么就需要首先制造一个能生成I到70亿零I之间任意数的随机数发生器,同时再产生70亿个随机数,然后才能实现对这些数据的随机排列。显然数据越多,成本越高。
技术实现思路
针对现有技术中随机数的生成方法存在随机性不高,以及成本高的技术问题,提供 ...
【技术保护点】
一种随机数生成方法,其具体包含以下步骤:1.输入需要处理的数列S,数列S中元素的进制为X;2.用随机数发生器生成X?1个(0,1]之间的随机数然后把这些数组成数列R;根据数列R计算得到长度为X的数列L(L0,L1,……,LX?1),其中L为数字0至X?1的随机排列;3.根据数列L对数字0至X?1进行授权,L0授权的权值为0,L1授权的权值为1,……,依次类推,LX?1授权的权值为X?1;4.数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。
【技术特征摘要】
1.一种随机数生成方法,其具体包含以下步骤1.输入需要处理的数列S,数列S中元素的进制为X ;2.用随机数发生器生成X-1个(0,I]之间的随机数然后把这些数组成数列R ;根据数列R计算得到长度为X的数列L (L0L1,……,Ljh),其中L为数字O至X-1的随机排列;3.根据数列L对数字O至X-1进行授权,L0授权的权值为0,L1授权的权值为1,……,依次类推,Ljh授权的权值为X-1 ;4.数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。2.如权利要求1所述的随机数生成方法,其特征在于所述方法还包括以下步骤根据数列S得到其特征值ST,步骤2中的随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,并根据S和R再现数列S R及随机数。3.如权利要求2所述的随机数生成方法,其特征在于所述方法还包括以下步骤将文字、图片、声音或者视频作为信息输入,并将输入的信息进行定长处理,处理后的单个输入作为数列S的一个元素。4.如权利要求3所述的随机数生成方法,其特征在于所述步骤4中对数列S的元素按照其权值进行排序,排序方式为依照权值的大小进行排序。5.一种随机数生成系统,其特征在于具体包括数列生成模块、随机数生成...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。