[发明专利]可逆随机数生成器有效
申请号: | 201610523036.7 | 申请日: | 2016-07-05 |
公开(公告)号: | CN106201434B | 公开(公告)日: | 2018-07-10 |
发明(设计)人: | 卫丽华;朱鹏程 | 申请(专利权)人: | 南通理工学院 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 南通市永通专利事务所(普通合伙) 32100 | 代理人: | 葛雷 |
地址: | 226000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种可逆随机数生成器,为基于存储器的可逆生成器、均匀分布的可逆生成器、其他分布的可逆生成器中的一种。本发明可逆随机数生成器可以通过正向随机数生成算法生成随机数列,同时也可以根据当前输出的随机数通过逆向随机数生成算法回推随机数列,性能优异,工作效果好。 | ||
搜索关键词: | 可逆 随机数生成器 生成器 随机数生成算法 随机数列 存储器 工作效果 随机数 正向 输出 | ||
【主权项】:
1.一种可逆随机数生成器,其特征是:所述可逆随机数生成器为基于存储器的可逆生成器、均匀分布的可逆生成器、其他分布的可逆生成器中的一种:(1)基于存储器的可逆生成器:给定一个大小为Mz位的空间,每个随机数的精度为b位,那么可逆随机数序列的长度为L=Mz/b;基于存储器可逆随机数算法包括正向和反向遍历一个随机数数列的方法;正向随机数数列由函数R*(x)生成;算法使用一个大小为M的循环缓冲区B来实现可逆;这个循环缓冲区下标取值范围是从0到M‑1,H为头指针,C为当前指针,T为尾指针,(a)正向R(x)步骤1:当头指针不等于尾指针时,由函数R*(x)生成循环缓冲区B的值,B[T]=R*(x),并修改尾指针T=(T+1)mod M,直到循环结束;步骤2:根据当前指针C从循环缓冲区B中取出随机数数列的当前值u=B[C],修改当前指针,指向下一个节点C=(C+1)mod M;(b)反向R‑1(x)步骤1:修改当前指针,指向前一个节点C=(C‑1)mod M步骤2:根据当前指针C从循环缓冲区B中取出随机数数列的当前值u=B[C];流程为:开始→H!=T→B[T]=R*()→修改尾指针T=(T+1)mod M;然后结束或返回→H!=T步骤;(2)均匀分布的可逆生成器:一个均匀分布的伪随机数生成器正向和逆向的执行的算法:f(x)从当前种子值计算下一个种子值,而f‑1(x)是从当前种子值计算前面种子值;U()映射种子值到区间[0,1);U()既被用于正向计算也被用于反向计算;正向算法流程:产生初始种子值x0→根据前一个种子值计算下一个种子值xn=f(xn‑1)→映射当前随机数un=U(xn)→将当前随机数保存到存储器中;然后输出或返回步骤:根据前一个种子值计算下一个种子值xn=f(xn‑1);f(x)的公式为:xn=(axn‑1+c)mod mun=xn/m,n=1,2,3...L其中:a为乘子,0<a<m;c为增量,0≤c<m;m为模数,m>0,通常取2的整数次幂;x0为初始种子值,0≤x0<m;为满足较好的统计性质,a和m以及c和m均互质;逆向算法流程:当前随机数xn+1→根据当前种子值计算前面一个种子值xn=f‑1(xn+1)→映射当前随机数un=U(xn)→将当前随机数保存到存储器中;然后输出或返回步骤:根据当前种子值计算前面一个种子值xn=f‑1(xn+1);f‑1(x)的公式为:xn=(bxn+1‑c)mod mun=xn/m,n=1,2,3...L其中:b=am‑2mod m;(3)其他分布的可逆生成器:其他分布的伪随机数生成器正向和逆向算法正向算法流程:产生初始种子值x0→根据前一个种子值计算下一个种子值xn=f(xn‑1)→生成sn=S(xn)变换值→映射当前随机数un=U(sn)→将当前随机数保存到存储器中;然后输出或返回步骤:根据前一个种子值计算下一个种子值xn=f(xn‑1);f(x)的公式为:xn=(axn‑1+c)mod mun=xn/m,n=1,2,3...L其中:a为乘子,0<a<m;c为增量,0≤c<m;m为模数,m>0,通常取2的整数次幂;x0为种子,0≤x0<m;为满足较好的统计性质,a和m以及c和m均互质;S(x)的公式为:逆向算法流程:当前随机数xn+1→根据当前种子值计算前面一个种子值xn=f‑1(xn+1)→生成sn=S‑1(xn)变换值→映射当前随机数un=U(sn)→将当前随机数保存到存储器中;然后输出或返回步骤:根据当前种子值计算前面一个种子值xn=f‑1(xn+1);f‑1(x)的公式为:xn=(bxn+1‑c)mod mun=xn/m,n=1,2,3...L其中:b=am‑2mod m;S‑1(x)的公式为:f()从当前种子值计算下一个种子值,而f‑1()是从当前种子值计算前面种子值;S()为变换函数实现不同分布,U()映射种子值到区间[0,1);U()既被用于正向计算也被用于反向计算;上述有关字母的含义:U为函数U(xn)u为函数的值,公式为:un=U(xn)S为函数S(xn)s为函数的值,公式为:sn=S(xn)e是自然对数的底数,是一个无限不循环小数;λ表示特征值y为函数的值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通理工学院,未经南通理工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610523036.7/,转载请声明来源钻瓜专利网。
- 上一篇:一种音乐播放显示方法及媒体播放器
- 下一篇:控制方法、控制装置及电子装置