著录项信息
专利名称 | 一种随机数的生成方法及系统 |
申请号 | CN201210525592.X | 申请日期 | 2012-12-10 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2013-04-10 | 公开/公告号 | CN103034471A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F7/58 | IPC分类号 | G;0;6;F;7;/;5;8查看分类表>
|
申请人 | 杜海洋 | 申请人地址 | 天津市滨海新区中新生态城中成大道以西、中滨大道以南生态建设公寓9号楼3层301放假-249
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 天津市瑞趣科技合伙企业(有限合伙) | 当前权利人 | 天津市瑞趣科技合伙企业(有限合伙) |
发明人 | 於菲 |
代理机构 | 成都九鼎天元知识产权代理有限公司 | 代理人 | 杨永梅 |
摘要
本发明涉及随机数技术领域,本发明公开了一种随机数生成方法,其具体包含以下步骤: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,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中的随机数。
2.如权利要求1所述的随机数生成方法,其特征在于所述方法还包括以下步骤:根据数列S得到其特征值ST,步骤2中的随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,并根据S和R再现数列SR及随机数。
3.如权利要求2所述的随机数生成方法,其特征在于所述方法还包括以下步骤:将文字、图片、声音或者视频作为信息输入,并将输入的信息进行定长处理,处理后的单个输入作为数列S的一个元素。
4.如权利要求3所述的随机数生成方法,其特征在于所述步骤4中对数列S的元素按照其权值进行排序,排序方式为依照权值的大小进行排序。
5.一种随机数生成系统,其特征在于具体包括数列生成模块、随机数生成模块、数列授权模块、随机数排序模块;所述数列生成模块用于输入需要处理的数列S,S数列中元素的进制为X;所述随机数生成模块用于采用随机数发生器生成长度为X-1的数列R,然后根据数列R计算得到长度为X的数列L(L0,L1,……,LX-1),其中L为数字0至X-1的随机排列;
所述数列授权模块用于根据数列L对数字0至X-1进行授权,L0授权的权值为0,L1授权的权值为1,……,依次类推,LX-1授权的权值为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中的元素的排序方式为依照其权值的大小进行排序。
一种随机数的生成方法及系统\n技术领域\n[0001] 本发明涉及随机数技术领域,尤其涉及一种随机数的生成方法及系统。\n背景技术\n[0002] 随机数在计算机软件、硬件、信息安全、抽奖系统等等领域都有着非常广泛的应用,因而如何得到随机性高的随机数就显得非常重要。\n[0003] 现有技术中得到随机数通常采用以下两种方式。第一,系统软件实现,通过纯软件系统生成的随机数是采用各种算法计算出来的随机数,通常称为伪随机数。目前,要得到优质的伪随机数,就不停地在算法上进行改进,如公开号为CN102520908A号专利申请中采用的双曲平方算法得到伪随机数,这样的方法一方面随机性不够另外一方面计算量太大,系统开销大。第二,采用硬件电路实现,硬件电路一般可以采用晶体管噪音作为生成“0”和“1”的物理随机数,但这种硬件电路产生随机数的成本随着随机数列中元素数量的增加,成本也增加较多。比如要需要对70亿零1个数据进行随机排列,那么就需要首先制造一个能生成1到70亿零1之间任意数的随机数发生器,同时再产生70亿个随机数,然后才能实现对这些数据的随机排列。显然数据越多,成本越高。\n发明内容\n[0004] 针对现有技术中随机数的生成方法存在随机性不高,以及成本高的技术问题,提供一种随机数生成方法。本发明还公开了实现这种随机数生成方法的系统。\n[0005] 本发明的发明目的通过下述技术方案来实现:\n[0006] 一种随机数生成方法,其具体包含以下步骤: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授权的权值为\n1,……,依次类推,LX-1授权的权值为X-1;4.数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。\n[0007] 更进一步地,上述方法还包括以下步骤:根据数列S得到其特征值ST,步骤2中的随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,并根据S和R再现数列SR及随机数。\n[0008] 更进一步地,上述方法还包括以下步骤:将文字、图片、声音或者视频作为信息输入,并将输入的信息进行定长处理,处理后的单个输入作为数列S的一个元素。\n[0009] 更进一步地,上述步骤4中对数列S的元素按照其权值进行排序,排序方式为依照权值的大小进行排序。\n[0010] 本发明还公开了一种随机数生成系统,具体包括数列生成模块、随机数生成模块、数列授权模块、随机数排序模块;所述数列生成模块用于输入需要处理的数列S,S数列中元素的进制为X;所述随机数生成模块用于采用随机数发生器生成长度为X-1的数列R,然后根据数列R计算得到长度为X的数列L(L0,L1,……,LX-1),其中L为数字0至X-1的随机排列;所述数列授权模块用于根据数列L对数字0至X-1进行授权,L0授权的权值为0,L1授权的权值为1,……,依次类推,LX-1授权的权值为X-1;所述随机数排序模块用于将数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。\n[0011] 更进一步地,上述系统还包括随机结果再现模块,所述随机结果再现模块用于根据随机数数列S得到其特征值ST,所述随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,根据S和R再现数列SR及随机数。\n[0012] 更进一步地,上述系统还包括输入信息处理模块,所述输入信息处理模块用于将文字、图片、声音或者视频信息输入进行定长处理,处理后的数据作为数列S的一个元素。\n[0013] 更进一步地,上述随机数排序模块中对数列S中的元素的排序方式为依照其权值的大小进行排序。\n[0014] 通过采用以上技术方案,本发明的有益效果是:本发明中只需要随机数发生器产生的长度为X-1的数列R,其中X为输入需要处理的数列S中元素的进制。随机数发生器产生的数列R的长度不会随着S数列中元素量的增加而增加,比如当数列S为16进制时,只需要用随机数发生器产生15个随机数就可以使得70亿零一个或者更多个数据进行随机排列,得到其随机数,降低了因多次使用随机数发生器而增加的成本。随机数发生器在产生随机数时,产生的数据越多,花的时间也越长,采用本发明的方法还可以节约时间,降低了系统的开销及成本。同时随机数的生成过程还可以再现,保证了随机数产生的真正随机性,其数据输入可以采用各种形式的输入,方便了用户的使用,同时将用户输入的各种形式的数据作为随机数,随机性效果好。\n具体实施方式\n[0015] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0016] 本发明公开了一种随机数生成方法,其具体包含以下步骤: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中的随机数。\n[0017] 当输入的随机数数列S中的元素为32位16进制的数时,此时外置的随机数发生器产生一组数字长度为15的随机数数列R,并根据R计算得到长度为X的数列L,L中的数字为0—9,A-F中16个数字的随机排列,例如L为8012345679ABCDFE或者8056791234ABCDFE,即8授权的权值为0,0授权的权值为1,……,依次类推,E授权的权值为F,并依照此方式对数列S中的每一个元素的每一位进行授权,假设S中的元素1由16个80组成,元素2由\n16个08组成,则元素1授权后的权值为16个08,元素2授权后的权值为16个80,授权后的元素依照其权值进行大小的比较时,得到元素1<元素2。本发明中X可以任意设定16或\n256等,其X数值的大小根据随机数的随机性要求进行设定,一般X的值越大时,随机程度越高。本发明采用随机数数列L对数列S中元素的每一位进行授予随机权值的方式,使得S数列中的元素随机排列,并选定排序后SR数列中固定位置的元素,从而得到随机数数列S中的随机数,比如选择数列SR的第1个,或是第34个,或是第78,56,444个,也就是说指定某些位置的数据有某些功能,比如有奖等。本发明中需要随机数发生器产生的随机数的个数是由S的进制决定的,其不会随着S数列中元素量的增加而增加,一般为16进制时,只需要产生长度为15的随机数数列R就可以使得70亿零一个数据进行随机排列,降低了因多次使用随机数发生器而增加的成本。随机数发生器在产生随机数时,产生的数据越多,花的时间也越长,采用本发明的方法还可以节约时间,降低了系统的开销。\n[0018] 本发明中的数列R是由随机数发生器生成的(0,1 ]之间的的数组成的,长度为X-1。数列L是根据R中的随机数对[0,X-1 ]之间的整数进行随机排列而得到的,长度为X。根据(0,1 ]之间的随机数,对数据进行随机排列,不属于本发明的重点,在此不在赘述。\n[0019] 更进一步地,本发明随机数的生成方法还包括以下步骤:根据数列S得到其特征值ST,步骤2中的随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的数列R后,保存R及其特征值RT,保存SR的特征值SRT,并根据S和R再现数列SR及随机数。在很多情况下,比如抽奖系统中,现有的方式通常都是将诸如用户的电话号码信息作为S的数列输入,再随机定义第几个输入为中奖号码,或者排序后的第几个号码为中奖号码,而这样的方式随机的结果无法再现,且后台修改随机结果的值很容易且不易发现,导致中奖的过程无法再现,也无法令人信服。本发明的方法中采用外置的随机数发生器产生随机数数列R,并根据R计算得到L后保存R及其特征值RT,根据S和R就可以再现数列SR及随机数。整个过程中,根据ST和RT的值检验输入数据的完整性,根据S和R再现产生随机数的过程,再根据SRT检验输出数据的完整性,整个过程中后台无法修改数据,使得随机数的生成更公正且可以再现,中奖的过程令人信服。\n[0020] 更进一步地,本发明随机数的生成方法还包括以下步骤:将文字、图片、声音或者视频作为信息输入,并将输入的信息进行定长处理,处理后的数据作为随机数数列S中的一个元素。在本发明中,文字、图片、声音或者视频等等一切可以用数字记录的的信息都可以作为信息的输入,这本身就是一系列的随机数,如此便节约了系统生成随机数的成本和时间,而由于这些随机数都是用户自己任意输入的,这些随机数的随机性更好,在中奖系统中,用户可以输入任何愿意输入的信息,系统将这些信息进行定长处理,定长处理可以采用MD5算法或者SHA1算法等,例如采用MD5算法处理后的数据都是由32位16进制数组成,定长处理算法是本领域常用的算法,在此不再赘述其原理及处理过程。采用本发明的方法节约了生成随机数的时间,并使得用户可以输入任意的信息作为抽奖的依据,增加了随机精度并降低了系统的开销。不限制用户的输入方式,使得结果的随机性效果更高。\n[0021] 更进一步地,上述步骤4中对授权后的元素按照其权值进行排序,排序方式为依照权值的大小进行排序。依照权值的大小进行排序使得排序的过程更快,同样也可以使用其他任意设定的规则对权值进行排序,比如奇数、偶数分别排序,再设定所有偶数大于奇数等等,其排序的规则可以根据需要进行任意的设定,这样的排序方式也增加了随机结果的随机性。\n[0022] 本发明还公开了一种随机数生成系统,具体包括数列生成模块、随机数生成模块、数列授权模块、随机数排序模块;所述数列生成模块用于输入需要处理的数列S,S数列中元素的进制为X;所述随机数生成模块用于采用随机数发生器生成长度为X-1的数列R,然后根据数列R计算得到长度为X的数列L(L0,L1,……,LX-1),其中L为数字0至X-1的随机排列;所述数列授权模块用于根据数列L对数字0至X-1进行授权,L0授权的权值为0,L1授权的权值为1,……,依次类推,LX-1授权的权值为X-1;所述随机数排序模块用于将数列S中的元素按照其权值进行排序,得到S的随机排序结果SR,从而得到数列S中的随机数。\n当输入的随机数数列S中的元素为32位8进制的数时,此时外置的随机数发生器产生一组数字长度为7的随机数数列R,然后根据数列R计算得到长度为X的数列L(L0,L1,……,LX-1),L中的数字为0—7中8个数字的随机排列,例如L为12345670,即1授权的权值为0,\n2授权的权值为1,……,依次类推,0授权的权值为7,并依照此方式对数列S中的每一个元素的每一位进行授权,假设S中的元素1由16个20组成,元素2由16个02组成,则元素1授权后的权值为16个17,元素2授权后的权值为16个71,授权后的元素依照其权值进行大小的比较时,得到元素1<元素2。本发明中X还可以任意设定为16或256等,其X数值的大小根据随机数的随机性要求进行设定,一般X的值越大时,随机程度越高。\n[0023] 本发明采用数列L对数列S中元素的每一位进行授予随机权值的方式,使得S数列中的元素随机排列,并选定排序后S数列中固定位置的元素,从而得到随机数数列S中的随机数,比如选择数列S的第5个,或是第22个,或是第16,40,52个。简单的说就是指定某些位置的数据有某些功能,比如有奖等。本发明中随机数发生器产生的随机数R的长度X-1是由S的进制决定的,其不会随着S数列中元素量的增加而增加,S的进制为16进制时,只需要产生15个随机数就可以使得70亿零一个数据进行随机排列,降低了因多次使用随机数发生器而增加的成本。随机数发生器在产生随机数时,产生的数据越多,花的时间也越长,采用本发明的方法还可以节约时间,降低了系统的开销。\n[0024] 更进一步地,本发明随机数的生成系统还包括随机结果再现模块,所述随机结果再现模块用于根据随机数数列S得到其特征值ST,所述随机数发生器为外置的随机数发生器,在外置的随机数发生器产生长度为X-1的随机数数列R后,保存R及其特征值RT,根据S和R再现数列SR及随机数。在很多情况下,比如抽奖系统中,现有的方式通常都是将诸如用户的电话号码信息作为S的数列输入,再随机定义第几个输入为中奖号码,或者排序后的第几个号码为中奖号码,而这样的方式随机的结果无法再现,且后台修改随机结果的值很容易且不易发现,导致中奖的过程无法再现,也无法令人信服。本发明的方法中加入随机结构再现模块,采用外置的随机数发生器产生随机数数列R,并计算得到L后保存R的特征值RT,根据S和R就可以再现数列SR及随机数。整个过程中,根据ST和RT的值检验输入数据的完整性,根据S和R再现产生随机数的过程,再根据SRT检验输出数据的完整性,整个过程中后台无法修改数据,使得随机数的生成更公正且可以再现,中奖的过程令人信服。\n[0025] 更进一步地,本发明中随机数的生成系统还包括输入信息处理模块,所述输入信息处理模块用于将文字、图片、声音或者视频信息输入进行定长处理,处理后的数据作为随机数数列S中的一个元素。在本发明的系统中,文字、图片、声音或者视频等等一切可以用数字记录的的信息都可以作为信息的输入,这本身就是一系列的随机数,如此便节约了系统生成随机数的成本和时间,而这些随机数的随机性更好,在中奖系统中,用户可以输入任
法律信息
- 2018-12-07
未缴年费专利权终止
IPC(主分类): G06F 7/58
专利号: ZL 201210525592.X
申请日: 2012.12.10
授权公告日: 2016.06.01
- 2016-07-13
专利权的转移
登记生效日: 2016.06.22
专利权人由杜海洋变更为天津市瑞趣科技合伙企业(有限合伙)
地址由614200 四川省乐山市峨眉山市黄湾乡景区路1号变更为天津市滨海新区中新生态城中成大道以西、中滨大道以南生态建设公寓9号楼3层301放假-249
- 2016-07-13
- 2016-06-01
- 2013-05-08
实质审查的生效
IPC(主分类): G06F 7/58
专利申请号: 201210525592.X
申请日: 2012.12.10
- 2013-04-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-09-19
|
2010-05-17
| | |
2
| |
2009-08-05
|
2007-08-02
| | |
3
| |
2005-06-29
|
2004-10-29
| | |
4
| |
2009-03-04
|
2007-02-02
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |