一种随机数组合发生器的研究_第1页
一种随机数组合发生器的研究_第2页
一种随机数组合发生器的研究_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    【摘要】  将基于混沌的随机数产生算法和线性同余发生器进行组合,产生随机数列.经过检验,随机数列的统计性质有了很大提高。 【关键词】  混沌; 线性同余发生器; 随机数1  引言    随机数在信息加密、数值运算及医学中基因序列分析等研究中有着广泛的应用。比如数值运算中,Monte Carlo方法占有重要的地位,随机数是该方法的基础.随机数的质量影响了信息的安全和计算结果的精度。特别是一些安全级别比较高的应用,对随机数提出了很高的要求。随机数可由硬件和软件两种方式产生

2、。在计算机中广泛使用的是软件方式,通过计算机利用数学模拟随机过程产生随机数。此方法有着自身的不足,数据之间有着关联性,存在周期,并非真正的随机数,因此被成为伪随机数。    常见的产生随机数的方法有1:线性同余法(LCG,Linear Congruent Generators)、Tarsworthe位移计数器法、Fibonacci延迟产生器法等。为了克服以上方法的缺陷,人们还发展了许多新的方法。组合发生器就是著名的一种。它是将两个随机数发生器进行组合,以一种发生器产生一个随机数列,再用另一个随机数发生器对随机数列进行重修排列,得到一个更为独立,周期更长的随机数列。已有一些利

3、用混沌序列转换伪随机数列的报道2,文献3虽然提出了一种由logistic映射构造具有均匀性数列的好方法,但数据之间的独立性较差。本研究中提出了一种新的方法,利用混沌算法4和线性同余发生器相组合得到随机数列,并就数据的均匀性和独立性进行了检验。    2  理论基础    2.1  混沌算法    混沌是一种确定性系统中出现的类似随机的过程。它首先是由洛伦兹在流体热对流的简化模型计算中观察到的。混沌现象可以用它某些非线性函数的迭代(映射)来表示类似随机的输出。一维迭代Logistic方程是一个很简

4、单的非线性抛物线函数,可以表示为:    xi+1=xi(1-xi),    (0xi1,    04)    (1)    xi 是i 次迭代的值。研究表明当>3.57 时,进入混沌状态。特征是表现为初值敏感性,既使初值相差非常小,经过几十次迭代,得到的值也会相差非常大,并且毫无关联。当=4 时,序列xi 的概率分布服从    P(xi)=1xi(1-xi)(2)    所以xi 序列分布并不均匀,通过代换    ri=2arc

5、sinxi(3)    就可以得到均匀的ri 数列。    2.2  线性同余发生器    线性同余发生器是现在使用最多的随机数发生器之一,该方法利用同余运算产生随机数。    Ii+1=(aIi+b)mod m    xi=Iim  (4)    其中m 为模数, a为乘子, b为增量,并且a,b,m,I1 均为非负整数。如何选择他们就决定了产生器的质量。在计算中取a=16807,b=0,m=231-1,I1=12546863 。显然

6、,由公式(4)得到的Ii 满足:0Ii m,所以0xi1 。线性同余法的优点就是速度快,每次调用只需几个操作步骤即可,因此最为常用.缺点就是数据序列的有着关联性,表现为高维稀疏网格结构5。特别是当a 和m 的值较小时,这种现象更为明显。    2.3  组合发生器    20世纪70年代就有人提出用用组合发生器来产生高质量的伪随机数。有文献6对此进行了理论分析并指出:几个独立且近似的随机变量的线性组合也是一个近似均匀的随机变量,其分布比组成它的任何一个变量更接近U(0,1)。    该算法是分别用两个发生器各自产生

7、一组随机数列,然后再把它们进行相互组合,以期得到一个统计结果更好的随机数列。具体步骤如下:    N个不同的随机数发生器各自产生一组随机数列 Xi(j)(i=1,2,L,  j=1,2,N)。    令c1,c2,cN 为N个非负整数。    Ui=Nj=1c(j)Xi(j)    ri=Ui mod 1    i=1,2,   (5)    按上述算法把混沌算法和线性同余产生的随机数组合在一起。在计算中,取c1=2,c2=5 。每个发

8、生器都有其各自的周期Period(Xi) ,如果它们互素,则组合后的周期是各自周期的最小公倍数(LCM)。Period(Xi)=LCM(Period(Xi(1)),Period(Xi(2),)。因此组合发生器产生数据的周期会大大增加,实际应用中可视为无穷大。    3  随机数的统计检验    随机数的好坏是通过各种统计检验来确定的,这些检验包括均匀性检验、独立性检验、参数检验等。其中最基本的是均匀性检验和独立性检验。在随机数的检验中独立性检验是首要的,如果不存在独立性就无所谓随机。也希望得到的随机数在区间0,1 上出现的概率是相同的

9、,所以均匀性检验也起着决定作用。    3.1  均匀性检验    假设区间0,1上的随机数列Xi(i=1,2,n)。如果随机数分布均匀,则把区间分成k 个相等的子区间后,落在每个子区间的随机数个数ni 近似等于n / k 。统计量2 按定义为:    2=ki=1(ni-n / k)2n / k   (6)    2 应服从2(k-1) 分布,在给定一个显著水平 下,可查表得到临界值2(k-1)。如果2>2 ,则拒绝均匀假设。    3.2

10、0; 独立性检验    对独立性检验中的相关检验基于相关系数r 。把随机数列ri(i=1,2,2n) 分成两部分Xi(i=1,3,2n-1),Yi(i=2,4,2n ,相关系数r 为:    r=1nni=1(Xi-)(Yi-)1nni=1(Xi-)2  1nni=1(Yi-)2  (7)    当=(1.96)2+n-2 |r|1.96 时, 认为线性回归效果显著,拒绝独立检验。    3.3  参数检验    随机数列Xi

11、(i=1,2,n) ,其一阶矩、二阶矩和二阶中心矩分别为:    =1nni=1Xi,  2=1nni=1Xi2, s2=1nni=1(Xi-12)2   (8)    对于均匀分布的数列,其值分别为12, 13,112 。如果与理论值没有显著差别,则通过参数检验。    检验中,3种发生器分别生成100000个数据,对其统计性质进行了分析。取检验的置信度=0.05 ,在均匀检验中,检验区间k=500 ,2(500)>552.78 时拒绝均匀假设7;独立性检验中=(1.96)2+n-2 |

12、r|1.96,拒绝独立假设。表1  随机数列的统计结果 从表1的统计结果可以看出,组合后的发生器表现出了更为优秀的统计结果.在数据的独立性和均匀性上都大大增加。    混沌算法虽然可以通过均匀性检验,但独立性较差,没有通过独立性检验,不宜单独作为随机数发生器使用.如果把数列中相邻两个数据作为(x,y) ,分别作出各个数列的二维散布图。不难看出,图1混沌算法得到的随机数列,数据之间有着强烈的关联,数据之间并不独立。图2和图3数据分布则比较均匀。   4  结论    计算机模拟、信息加密或Mont

13、e Carlo方法成功的基础是实现真正的随机抽样,随机抽样的基础是随机数。从以上统计结果可以看出,两种发生器组合之后,得到的随机数列具有更好的统计结果,在保持均匀性的基础上,独立性有了较大的提高。并且组合后,随机数列的周期可视为无穷大。因此该方法具有良好的统计性质,符合随机数的要求。【参考文献】  1 杨自强,魏公毅. 产生伪随机数的若干新方法.数值计算与计算机应用,2001,3:210216.2 孙霞,吴自勤,黄畇,分形原理及其应用.中国科学技术大学出版社 2003,122.3 盛利元,肖燕予,盛喆,将混沌序列变换成均匀伪随机序列的普适算法.物理学报,2008,57:44074412.4 周燕,覃朝玲 用混沌法产生随机数发生器的研究.西南师范大学学报,2000,25:150154.5 罗平. 线性同余发生器的缺陷及其改进.计算机工程,1995,21:295297.6 De

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论