The invention discloses a reversible random number generator, which is a reversible generator based on memory, a uniformly distributed reversible generator and a kind of other distributed reversible generator. This invention relates to a reversible random number generator can generate random numbers by forward random number generation algorithm, can also according to the random number of the current output of the random number generation algorithm by reverse push back random series, excellent performance, good working effect.
【技术实现步骤摘要】
本专利技术涉及一种可逆随机数生成器。
技术介绍
概率分布被计算机代码用来模拟物理系统模型,随机数生成器被用来生成符合一定概率分布的数列。生成随机数数列已经被研究好多年,主要的研究内容有:(1)在一定精度范围内,增加随机数的长度,(2)提高生成器的速度,(3)生成复杂分布数列,(4)降低多个数列间的相互影响。然而,关于生成器的可逆方面很少被研究或考虑。尽管它与这些研究有很多交叉的方面,但是它还没有受到广泛关注。
技术实现思路
本专利技术的目的在于提供一种可以通过正向随机数生成算法生成随机数列,同时也可以根据当前输出的随机数通过逆向随机数生成算法回推随机数列的可逆随机数生成器。本专利技术的技术解决方案是:一种可逆随机数生成器,其特征是:为基于存储器的可逆生成器、均匀分布的可逆生成器、其他分布的可逆生成器中的一种:(1)基于存储器的可逆生成器:给定一个大小为Mz位的空间,每个随机数的精度为B位,那么可逆随机数序列的长度为M=Mz/B;基于存储器可逆随机数算法包括正向和反向遍历一个随机数数列的方法;正向随机数数列由函数R*(x)生成;算法使用一个大小为M的循环缓冲区B来实现可逆;这个循环缓冲区下标取值范围是从0到M-1,h为头指针,c为当前指针,t为尾指针,(a)正向(b)反向R-1(x):c=(c-1)mod Mu=B[c]return u;流程为:开始→h!=t→B[t]=R*()→修改尾指针t=(t+1)modM;然后结束或返回→h!=t步骤;(2)均匀分布的可逆生成器:一个均匀分布的伪随机数生成器正向和逆向的执行的算法:(a)正向R():y=f(x)u=U( ...
【技术保护点】
一种可逆随机数生成器,其特征是:为基于存储器的可逆生成器、均匀分布的可逆生成器、其他分布的可逆生成器中的一种:(1)基于存储器的可逆生成器:给定一个大小为Mz位的空间,每个随机数的精度为B位,那么可逆随机数序列的长度为M=Mz/B;基于存储器可逆随机数算法包括正向和反向遍历一个随机数数列的方法;正向随机数数列由函数R*(x)生成;算法使用一个大小为M的循环缓冲区B来实现可逆;这个循环缓冲区下标取值范围是从0到M‑1,h为头指针,c为当前指针,t为尾指针,(a)正向(b)反向流程为:开始→h!=t→B[t]=R*()→修改尾指针t=(t+1)modM;然后结束或返回→h!=t步骤;(2)均匀分布的可逆生成器:一个均匀分布的伪随机数生成器正向和逆向的执行的算法:(a)正向R():y=f(x)u=U(y)return u;(b)反向R‑1():y=f‑1(x)u=U(y)return u;f(x)从当前种子值计算下一个种子值,而f‑1(x)是从当前种子值计算前面种子值;U(x)映射种子值到区间[0,1);U(x)既被用于正向计算也被用于反向计算;正向算法流程:产生初始种子值x0→根据前一个种 ...
【技术特征摘要】
1.一种可逆随机数生成器,其特征是:为基于存储器的可逆生成器、均匀分布的可逆生成器、其他分布的可逆生成器中的一种:(1)基于存储器的可逆生成器:给定一个大小为Mz位的空间,每个随机数的精度为B位,那么可逆随机数序列的长度为M=Mz/B;基于存储器可逆随机数算法包括正向和反向遍历一个随机数数列的方法;正向随机数数列由函数R*(x)生成;算法使用一个大小为M的循环缓冲区B来实现可逆;这个循环缓冲区下标取值范围是从0到M-1,h为头指针,c为当前指针,t为尾指针,(a)正向(b)反向流程为:开始→h!=t→B[t]=R*()→修改尾指针t=(t+1)modM;然后结束或返回→h!=t步骤;(2)均匀分布的可逆生成器:一个均匀分布的伪随机数生成器正向和逆向的执行的算法:(a)正向R():y=f(x)u=U(y)return u;(b)反向R-1():y=f-1(x)u=U(y)return u;f(x)从当前种子值计算下一个种子值,而f-1(x)是从当前种子值计算前面种子值;U(x)映射种子值到区间[0,1);U(x)既被用于正向计算也被用于反向计算;正向算法流程:产生初始种子值x0→根据前一个种子值计算下一个种子值Xn=f(xn-1)→映射当前随机数Un=U(Xn)→将当前随机数保存到存储器中;然后输出或返回步骤:根据前一个种子值计算下一个种子值Xn=f(xn-1);F(x)的公式为:其中: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)的公式为:其中:b=am-2modm;(3)其他分布的可逆生成器:其他分布的伪随机数生成器正向和逆向算法(a)正向R():y=f(x)s=S(y)u=U(s)return u;(b)反向R-1():y=f-1(x)s=S-1(y)u=U(s)re...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。