实验一计算伪随机数的产生.doc

实验一计算伪随机数的产生.doc

ID:55514450

大小:196.00 KB

页数:13页

时间:2020-05-15

实验一计算伪随机数的产生.doc_第1页
实验一计算伪随机数的产生.doc_第2页
实验一计算伪随机数的产生.doc_第3页
实验一计算伪随机数的产生.doc_第4页
实验一计算伪随机数的产生.doc_第5页
资源描述:

《实验一计算伪随机数的产生.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一计算机伪随机数的产生一、实验目的  ①通过计算机高级语言编程产生一系列伪随机数,掌握平方取中法、乘同余法、混合同余法产生均匀随机数的方法。②编程对产生的随机数进行检验,掌握参数检验、均匀性检验和独立性检验的思想和方法。二、实验原理   可以用数学方法产生均匀随机数,数学方法就是用数学公式计算出一组序列,很显然这种方法得到的数不是随机数,因为给定初始值后,拧紧公式计算出来的数据序列是 ,并且经过一定的时间后,还会出现周期性的重复。不过,如果计算方法选择得当,它们可以认为是相互独立的、均匀分布的、经得起

2、数理统计的独立性和均匀性检验,这种随机数称为伪随机数。1、A平方取中法设有一个b进制m位数ε,自乘后一般得到一个2m位的数ε2,如果不足2m位,则在前面补0, 取的中间m位数,得 再取的中间位作,一一重复下去,我们得到b进制m位数列。令r=,则{rn}就是所求的伪随机数列。2、乘同余法乘同余法是按照下列公式产生的随机数式中,λ称为乘因子,M是模数,给定初始值x0后,可算出x1,x2,…,一般满足最多只有M个不同的值,所以{xn}是有周期的,其周期L≤M,且与λ的选择有关。令则不是真正的随机序列,但当λ,M

3、,x0选择得当,且周期L足够大,则在同一周期有可能经得起统计检验。3、混合同余法混合同余法是按照下列公式产生随机数,λ,M,c均为非负整数,适当地选择c可以改善随机数的统计特性。,令则。要得到一组优质的随机数,λ,M,c的选择非常重要,这些参数可按如下规律选取:M=2L,L为计算机字长,在混合同余法中,有λ=4q1+1,c=2a1+1理论分析和检验结果都表明,λ的取值不宜过小。Λ可按如下方式选取,其中选择s使得成立的最大整数。检验原理:a)参数检验参数检验就是检验伪随机数的特征参数的样本值与理论值是否有显

4、著性差异。伪随机数的样本一阶矩、样本二阶矩和样本方差为根据(0,1)均匀分布,难算得定义三个检验统计量,根据中心极限定理,检验统计量u1,u2,u3是渐近服从标准正态分布的。给定显著性水平α,可确定临界值,即满足如果,那么,我们说的平均值与r的理论值没有显著性差异。如果,那么,我们说的样本二阶矩与r的二阶矩理论值没有显著性差异。如果,那么,我们说的样本方差与理论方差没有显著性差异。a)均匀性检验均匀性检验又称为频率检验,主要检验经验频率与理论频率是否有显著性差异。把(0,1)区间分为K个等份,以表示第i个

5、小区间,用ni表示中落在第i个区间的个数,则统计量渐近服从自由度为(k-1)的分布。给定显著性水平α,可确定二个临界值即满足因此,如果则认为经验频率与理论频率无显著性差异。b)独立性检验独立性检验是检验各随机数之间的统计相关性。相关系数取值为零是两个随机变量独立的必要条件,取值大小反映它们相关性的大小、故可用平检验随机数的独立性。设有一伪随机数序列,则样本相关系数为定义检验统计量那么u渐近服从标准正态分布。因此给定显著性水平α,可确定临界值,那么,我们说的样本相关系数与r均值没有显著性差异。三、实验内容 

6、 利用JAVA语言实现伪随机数的产生及检验,程序代码及说明如下:  ① 程序建立了三个类:类“Suiji”用来产生伪随机数,类“Check”对产生伪随机数进行检验,类“Text”对程序进行功能测试。② 类“Suiji”的方法creat1(),creat2(),creat3()分别以平方取中法、乘同余法及混合同乘法各产生100个伪随机数;类“Check”方法check1(),check3()分别对伪随机数序列进行参数检验、独立性检验(没有进行均匀检验)。③ 方法creat2()以“平方取中法”产生伪随机数,

7、程序对可能出现的“退化”进行了处理,即如果出现了“退化”,则将初始值initialValue加1,重新产生随机数序列,直到产生的随机数序列没有“退化”为止。④ 平方取中法的中,取=1054;  乘同余法中,取X0=123,=7,M=10000;混合同余法中,取X0=123,=7,M=10000,c=11;⑴ 类Suiji原代码://Suiji.javaimportjavax.swing.*;publicclassSuiji{privatedoublea1[];privatedoublea2[];priva

8、tedoublea3[];privatelonginitialValue;publicSuiji(){a1=newdouble[100];a2=newdouble[100];a3=newdouble[100];initialValue=1054;creat1();creat2();creat3();}publicvoidcreat1() //平方取中法{longbValue,e;intarrayValue[]=newint[4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。