一种随机数的生成方法及系统的制作方法

文档序号:6576094阅读:379来源:国知局
专利名称:一种随机数的生成方法及系统的制作方法
技术领域
本发明涉及随机数技术领域,尤其涉及一种随机数的生成方法及系统。
背景技术
随机数在计算机软件、硬件、信息安全、抽奖系统等等领域都有着非常广泛的应用,因而如何得到随机性高的随机数就显得非常重要。
现有技术中得到随机数通常采用以下两种方式。第一,系统软件实现,通过纯软件系统生成的随机数是采用各种算法计算出来的随机数,通常称为伪随机数。目前,要得到优质的伪随机数,就不停地在算法上进行改进,如公开号为CN102520908A号专利申请中采用的双曲平方算法得到伪随机数,这样的方法一方面随机性不够另外一方面计算量太大,系统开销大。第二,采用硬件电路实现,硬件电路一般可以采用晶体管噪音作为生成“O”和 “ I ”的物理随机数,但这种硬件电路产生随机数的成本随着随机数列中元素数量的增加,成本也增加较多。比如要需要对70亿零I个数据进行随机排列,那么就需要首先制造一个能生成I到70亿零I之间任意数的随机数发生器,同时再产生70亿个随机数,然后才能实现对这些数据的随机排列。显然数据越多,成本越高。发明内容
针对现有技术中随机数的生成方法存在随机性不高,以及成本高的技术问题,提供一种随机数生成方法。本发明还公开了实现这种随机数生成方法的系统。
本发明的发明目的通过下述技术方案来实现一种随机数生成方法,其具体包含以下步骤1.输入需要处理的数列S,数列S中元素的进制为X ;2.用随机数发生器生成X-1个(0,I]之间的随机数然后把这些数组成数列R ; 根据数列R计算得到长度为X的数列L (L0L1,……,Ljh),其中L为数字O至X-1的随机排列;3.根据数列L对数字O至X-1进行授权,Ltl授权的权值为OA1授权的权值为1,……, 依次类推,Lx^1授权的权值为X-1 ;4.数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。
更进一步地,上述方法还包括以下步骤根据数列S得到其特征值ST,步骤2中的随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后, 保存R及其特征值RT,保存SR的特征值SRT,并根据S和R再现数列S R及随机数。
更进一步地,上述方法还包括以下步骤将文字、图片、声音或者视频作为信息输入,并将输入的信息进行定长处理,处理后的单个输入作为数列S的一个元素。
更进一步地,上述步骤4中对数列S的元素按照其权值进行排序,排序方式为依照权值的大小进行排序。
本发明还公开了一种随机数生成系统, 具体包括数列生成模块、随机数生成模块、 数列授权模块、随机数排序模块;所述数列生成模块用于输入需要处理的数列S,S数列中元素的进制为X ;所述随机数生成模块用于采用随机数发生器生成长度为X-1的数列R,然后根据数列R计算得到长度为X的数列L (L0jL1,……,Ljh),其中L为数字O至X-1的随机排列;所述数列授权模块用于根据数列L对数字O至X-1进行授权,L0授权的权值为0, L1授权的权值为1,……,依次类推,Ljh授权的权值为X-1 ;所述随机数排序模块用于将数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。
更进一步地,上述系统还包括随机结果再现模块,所述随机结果再现模块用于根据随机数数列S得到其特征值ST,所述随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,根据 S和R再现数列S R及随机数。
更进一步地,上述系统还包括输入信息处理模块,所述输入信息处理模块用于将文字、图片、声音或者视频信息输入进行定长处理,处理后的数据作为数列S的一个元素。
更进一步地,上述随机数排序模块中对数列S中的元素的排序方式为依照其权值的大小进行排序。
通过采用以上技术方案,本发明的有益效果是本发明中只需要随机数发生器产生的长度为X-1的数列R,其中X为输入需要处理的数列S中元素的进制。随机数发生器产生的数列R的长度不会随着S数列中元素量的增加而增加,比如当数列S为16进制时,只需要用随机数发生器产生15个随机数就可以使得70亿零一个或者更多个数据进行随机排列,得到其随机数,降低了因多次使用随机数发生器而增加的成本。随机数发生器在产生随机数时,产生的数据越多,花的时间也越长,采用本发明的方法还可以节约时间,降低了系统的开销及成本。同时随机数的生成过程还可以再现,保证了随机数产生的真正随机性,其数据输入可以采用各种形式的输入,方便了用户的使用,同时将用户输入的各种形式的数据作为随机数,随机性效果好。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明公开了一种随机数生成方法,其具体包含以下步骤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中的随机数。
当输入的随机数数列S中的元素为32位16进制的数时,此时外置的随机数发生器产生一组数字长度为15的随机数数列R,并根据R计算得到长度为X的数列L,L中的数字为O—9,A-F中16个数字的随机排列,例如L为8012345679ABCDFE或者8056791234ABCDFE, 即8授权的权值为0,O授权的权值为1,……,依次类推,E授权的权值为F,并依照此方式对数列S中的每一个元素的每一位进行授权,假设S中的元素I由16个80组成,元素2由 16个08组成,则元素I授权后的权值为16个08,元素2授权后的权值为16个 80,授权后的元素依照其权值进行大小的比较时,得到元素I〈元素2。本发明中X可以任意设定16或 256等,其X数值的大小根据随机数的随机性要求进行设定,一般X的值越大时,随机程度 越高。本发明采用随机数数列L对数列S中元素的每一位进行授予随机权值的方式,使得 S数列中的元素随机排列,并选定排序后SR数列中固定位置的元素,从而得到随机数数列S 中的随机数,比如选择数列SR的第I个,或是第34个,或是第78,56,444个,也就是说指定 某些位置的数据有某些功能,比如有奖等。本发明中需要随机数发生器产生的随机数的个 数是由S的进制决定的,其不会随着S数列中元素量的增加而增加,一般为16进制时,只需 要产生长度为15的随机数数列R就可以使得70亿零一个数据进行随机排列,降低了因多 次使用随机数发生器而增加的成本。随机数发生器在产生随机数时,产生的数据越多,花的 时间也越长,采用本发明的方法还可以节约时间,降低了系统的开销。
本发明中的数列R是由随机数发生器生成的(0,I ]之间的的数组成的,长度为 X-1o数列L是根据R中的随机数对
之间的整数进行随机排列而得到的,长度为 X。根据(0,I ]之间的随机数,对数据进行随机排列,不属于本发明的重点,在此不在赘述。
更进一步地,本发明随机数的生成方法还包括以下步骤根据数列S得到其特征 值ST,步骤2中的随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度 为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,并根据S和R再现数列S R 及随机数。在很多情况下,比如抽奖系统中,现有的方式通常都是将诸如用户的电话号码信 息作为S的数列输入,再随机定义第几个输入为中奖号码,或者排序后的第几个号码为中 奖号码,而这样的方式随机的结果无法再现,且后台修改随机结果的值很容易且不易发现, 导致中奖的过程无法再现,也无法令人信服。本发明的方法中采用外置的随机数发生器产 生随机数数列R,并根据R计算得到L后保存R及其特征值RT,根据S和R就可以再现数列 S R及随机数。整个过程中,根据ST和RT的值检验输入数据的完整性,根据S和R再现产 生随机数的过程,再根据SRT检验输出数据的完整性,整个过程中后台无法修改数据,使得 随机数的生成更公正且可以再现,中奖的过程令人信服。
更进一步地,本发明随机数的生成方法还包括以下步骤将文字、图片、声音或者 视频作为信息输入,并将输入的信息进行定长处理,处理后的数据作为随机数数列S中的 一个元素。在本发明中,文字、图片、声音或者视频等等一切可以用数字记录的的信息都可 以作为信息的输入,这本身就是一系列的随机数,如此便节约了系统生成随机数的成本和 时间,而由于这些随机数都是用户自己任意输入的,这些随机数的随机性更好,在中奖系统 中,用户可以输入任何愿意输入的信息,系统将这些信息进行定长处理,定长处理可以采用 MD5算法或者SHAl算法等,例如采用MD5算法处理后的数据都是由32位16进制数组成,定 长处理算法是本领域常用的算法,在此不再赘述其原理及处理过程。采用本发明的方法节 约了生成随机数的时间,并使得用户可以输入任意的信息作为抽奖的依据,增加了随机精 度并降低了系统的开销。不限制用户的输入方式,使得结果的随机性效果更高。
更进一步地,上述步骤4中对授权后的元素按照其权值进行排序,排序方式为依 照权值的大小进行排序。依照权值的大小进行排序使得排序的过程更快,同样也可以使用 其他任意设定的规则对权值进行排序,比如奇数、偶数分别排序,再设定所有偶数大于奇数 等等,其排序的规则可以根据需要进行任意的设定,这样的排序方式也增加了随机结果的 随机性。
本发明还公开了一种随机数生成系统,具体包括数列生成模块、随机数生成模块、 数列授权模块、随机数排序模块;所述数列生成模块用于输入需要处理的数列S,S数列中元素的进制为X ;所述随机数生成模块用于采用随机数发生器生成长度为X-1的数列R,然后根据数列R计算得到长度为X的数列L (L0jL1,……,Ljh),其中L为数字O至X-1的随机排列;所述数列授权模块用于根据数列L对数字O至X-1进行授权,L0授权的权值为0,L1 授权的权值为1,……,依次类推,Ljh授权的权值为X-1 ;所述随机数排序模块用于将数列 S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。 当输入的随机数数列S中的元素为32位8进制的数时,此时外置的随机数发生器产生一组数字长度为7的随机数数列R,然后根据数列R计算得到长度为X的数列L (Ltl, L1,……, LjhXL中的数字为O— 7中8个数字的随机排列,例如L为12345670,即I授权的权值为0,2授权的权值为I,......,依次类推,O授权的权值为7,并依照此方式对数列S中的每一个元素的每一位进行授权,假设S中的元素I由16个20组成,元素2由16个02组成,则元素I授权后的权值为16个17,元素2授权后的权值为16个71,授权后的元素依照其权值进行大小的比较时,得到元素I〈元素2。本发明中X还可以任意设定为16或256等,其X 数值的大小根据随机数的随机性要求进行设定,一般X的值越大时,随机程度越高。
本发明采用数列L对数列S中元素的每一位进行授予随机权值的方式,使得S数列中的元素随机排列,并选定排序后S数列中固定位置的元素,从而得到随机数数列S中的随机数,比如选择数列S的第5个,或是第22个,或是第16,40,52个。简单的说就是指定某些位置的数据有某些功能,比如有奖等。本发明中随机数发生器产生的随机数R的长度 X-1是由S的进制决定的,其不会随着S数列中 元素量的增加而增加,S的进制为16进制时,只需要产生15个随机数就可以使得70亿零一个数据进行随机排列,降低了因多次使用随机数发生器而增加的成本。随机数发生器在产生随机数时,产生的数据越多,花的时间也越长,采用本发明的方法还可以节约时间,降低了系统的开销。
更进一步地,本发明随机数的生成系统还包括随机结果再现模块,所述随机结果再现模块用于根据随机数数列S得到其特征值ST,所述随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的随机数数列R后,保存R及其特征值RT,根据S 和R再现数列S R及随机数。在很多情况下,比如抽奖系统中,现有的方式通常都是将诸如用户的电话号码信息作为S的数列输入,再随机定义第几个输入为中奖号码,或者排序后的第几个号码为中奖号码,而这样的方式随机的结果无法再现,且后台修改随机结果的值很容易且不易发现,导致中奖的过程无法再现,也无法令人信服。本发明的方法中加入随机结构再现模块,采用外置的随机数发生器产生随机数数列R,并计算得到L后保存R的特征值RT,根据S和R就可以再现数列S R及随机数。整个过程中,根据ST和RT的值检验输入数据的完整性,根据S和R再现产生随机数的过程,再根据SRT检验输出数据的完整性,整个过程中后台无法修改数据,使得随机数的生成更公正且可以再现,中奖的过程令人信服。
更进一步地,本发明中随机数的生成系统还包括输入信息处理模块,所述输入信息处理模块用于将文字、图片、声音或者视频信息输入进行定长处理,处理后的数据作为随机数数列S中的一个元素。在本发明的系统中,文字、图片、声音或者视频等等一切可以用数字记录的的信息都可以作为信息的输入,这本身就是一系列的随机数,如此便节约了系统生成随机数的成本和时间,而这些随机数的随机性更好,在中奖系统中,用户可以输入任何愿意输入的信息,系统将这些信息进行定长处理,定长处理可以采用MD5算法或者SHAl 算法等,定长处理算法是本领域常用的算法,在此不再赘述其原理及处理过程。采用本发 明的方法节约了生成随机数的时间和成本,并使得用户可以输入任意的信息作为抽奖的依 据,增加了随机精度并降低了系统的开销。不限制用户的输入方式,使得结果的随机性效果更高。
更进一步地,上述随机数排序模块排序方式为依照权值的大小进行排序。依照权 值的大小进行排序使得排序的过程更快,同样也可以使用其他任意设定的规则对权值进行 排序,比如奇数、偶数分别排序,再奇数大于偶数等等,其排序的规则可以根据需要进行任 意的设定,这样的排序方式也增加了随机结果的随机性。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明 并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、 修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识 进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发 明所附权利要求的保护范围内。
权利要求
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.一种随机数生成系统,其特征在于具体包括数列生成模块、随机数生成模块、数列授权模块、随机数排序模块;所述数列生成模块用于输入需要处理的数列S,S数列中元素的进制为X ;所述随机数生成模块用于采用随机数发生器生成长度为X-1的数列R,然后根据数列R计算得到长度为X的数列L (L0L1,……,Ljh),其中L为数字O至X-1的随机排列;所述数列授权模块用于根据数列L对数字O至X-1进行授权,L0授权的权值为OA1授权的权值为1,……,依次类推,Ljh授权的权值为X-1 ;所述随机数排序模块用于将数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。
6.如权利要求5所述的随机数生成系统,其特征在于所述系统还包括随机结果再现模块,所述随机结果再现模块用于根据随机数数列S得到其特征值ST,所述随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,根据S和R再现数列SR及随机数。
7.如权利要求6所述的随机数生成系统,其特征在于所述系统还包括输入信息处理模块,所述输入信息处理模块用于将文字、图片、声音或者视频信息输入进行定长处理,处理后的数据作为数列S的一个元素。
8.如权利要求7所述的随机数生成系统,其特征在于所述随机数排序模块中对数列S中的元素的排序方式为依照其权值的大小进行排序。
全文摘要
本发明涉及随机数技术领域,本发明公开了一种随机数生成方法,其具体包含以下步骤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中的随机数。本发明还公开了一种随机数生成的系统。采用本发明的方法还可以节约时间、降低成本,系统的开销也得以降低。同时随机数的生成过程还可以再现,保证了随机数产生的真正随机性,随机性效果好。
文档编号G06F7/58GK103034471SQ20121052559
公开日2013年4月10日 申请日期2012年12月10日 优先权日2012年12月10日
发明者杜海洋 申请人:杜海洋
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1