[发明专利]一种真随机数生成方法有效
申请号: | 201710601779.6 | 申请日: | 2017-07-21 |
公开(公告)号: | CN107368283B | 公开(公告)日: | 2020-07-03 |
发明(设计)人: | 王剑;乔阔远 | 申请(专利权)人: | 郑州大学 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 洛阳公信知识产权事务所(普通合伙) 41120 | 代理人: | 宋晨炜 |
地址: | 450000 河南省郑州*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 随机数 生成 方法 | ||
1.一种真随机数生成方法,其特征在于:用到一种生成装置,生成装置包括随机系统和生成系统;随机系统包括闭环连接的处理模块、事件执行模块和计时模块,生成系统包括闭环连接的数值拆分模块、0/1生成模块和存储模块,其中数值拆分模块和0/1生成模块均与处理模块相连接;具体的生成步骤如下:
S1、数值拆分模块根据随机数的上界B1和下界B2计算界差B,B=B1-B2;
S2、数值拆分模块对B进行拆分,其中k0、k1、k2、……、kn为自然数,并且有并计算叠加参数T=k0+k1+k2+……+kn+(n+1);
S3、数值拆分模块将k0、k1、k2、……、kn传输给0/1生成模块,0/1生成模块生成(n+1)个存储区,每个存储区分别有(k0+1)、(k1+1)、(k2+1)、……、(kn+1)个数位,存储区生成完毕后向存储模块申请(n+1)个内存地址块,记为Address0,Address1,Address2,……,Addressn;其中Address0大小为k0个字节,Address1大小为k1个字节,依次类推;
S4、数值拆分模块传输给处理模块一个临界值L生成信号;
S5、处理模块接受到临界值L生成信号后开始生成临界值L,具体的生成步骤包括:
T1、处理模块提出一个事件E并设定执行次数,然后将事件E和执行次数传输给事件执行模块;
T2、事件执行模块接收到处理模块提出的事件E并按执行次数逐次执行;
T3、处理模块利用计时模块采集事件执行模块每次执行事件E消耗的时间;
T4、处理模块计算所有执行时间的均值,该均值即为临界值L;
S6、处理模块将生成的临界值L传输给数值拆分模块;
S7、数值拆分模块给处理模块传输一个临界值L生成信号和叠加参数T,同时将临界值L传输给0/1生成模块;
S8、处理模块接收到随机量生成信号后将所述事件E传输给事件执行模块并设定执行次数为T;
S9、事件执行模块执行T次事件E,并返回给处理模块T个执行时间t;
S10、处理模块将T个执行时间t传输给0/1生成模块,0/1生成模块将执行时间t和临界值L进行对比,根据对比结果产生一个0或1,具体步骤包括:
P1、0/1生成模块将执行时间t和临界值L相比较,如果执行时间t大于临界值L,则输出1,否则输出0;
P2、0/1生成模块将生成的0或1传输给存储模块;
S11、存储模块根据S3中生成的内存地址块,对于每一个内存地址块进行以下操作:
Q1、对于内存地址块中的每一个字节Bi,
Q2、使用0/1生成模块传输过来的0或1依次替换Bi,使每个内存地址块内存储一个二进制数;
S12、数值拆分模块读取内存地址块Address0,Address1,Address2,……,Addressn中的二进制数,并将其转化为十进制数值,对应为D0,D1,D2,……,Dn;
S13、数值拆分模块将D0,D1,D2,……,Dn求和记为D,计算D和B的余数C,将C+B2作为结果并输出。
2.如权利要求1所述的一种真随机数生成方法,其特征在于:所述步骤T3中,计时模块采集事件执行模块每次执行事件E消耗的时间的具体步骤为:
M1、处理模块首先利用计时模块获得当前时间T1,
M2、处理模块将事件E交付为事件执行模块,等待其运行完成,
M3、事件执行模块完成事件E后,处理模块从计时模块中获得当前时间T2,
M4、将T2和T1相减,获得时间差T3,时间差T3即为事件执行模块单次执行事件E消耗的时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州大学,未经郑州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710601779.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:特种钢铸造金属模具加热装置
- 下一篇:一种七支管组合型铸钢节点浇冒系统