伪随机数.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
伪随机数

实验一 计算机伪随机数的产生 一、实验目的   ①通过计算机高级语言编程产生一系列伪随机数,掌握平方取中法、乘同余法、混合同余法产生均匀随机数的方法。 ②编程对产生的随机数进行检验,掌握参数检验、均匀性检验和独立性检验的思想和方法。 二、实验原理    可以用数学方法产生均匀随机数,数学方法就是用数学公式计算出一组序列,很显然这种方法得到的数不是随机数,因为给定初始值后,拧紧公式计算出来的数据序列是 ,并且经过一定的时间后,还会出现周期性的重复。不过,如果计算方法选择得当,它们可以认为是相互独立的、均匀分布的、经得起数理统计的独立性和均匀性检验,这种随机数称为伪随机数。 1、A平方取中法 设有一个b进制m位数ε,自乘后一般得到一个2m位的数ε2,如果不足2m位,则在前面补0,   取的中间m位数,得   再取的中间位作,一一重复下去,我们得到b进制m位数列。令r=,则{rn}就是所求的伪随机数列。 乘同余法 乘同余法是按照下列公式产生的随机数 式中,λ称为乘因子,M是模数,给定初始值x0后,可算出x1 , x2 ,…,一般满足最多只有M个不同的值,所以{xn}是有周期的,其周期L≤M,且与λ的选择有关。 令 则不是真正的随机序列,但当λ,M,x0 选择得当,且周期L足够大,则在同一周期有可能经得起统计检验。 3、混合同余法 混合同余法是按照下列公式产生随机数, λ,M,c均为非负整数,适当地选择c可以改善随机数的统计特性。,令 则。 要得到一组优质的随机数,λ,M,c的选择非常重要,这些参数可按如下规律选取:M=2L,L为计算机字长,在混合同余法中,有 λ=4q1+1,c=2a1+1 理论分析和检验结果都表明,λ的取值不宜过小。Λ可按如下方式选取, 其中选择s使得成立的最大整数。 检验原理: 参数检验 参数检验就是检验伪随机数的特征参数的样本值与理论值是否有显著性差异。 伪随机数的样本一阶矩、样本二阶矩和样本方差为 根据(0,1)均匀分布,难算得 定义三个检验统计量, 根据中心极限定理,检验统计量u1, u2, u3 是渐近服从标准正态分布的。 给定显著性水平α,可确定临界值,即满足 如果,那么,我们说的平均值与r的理论值没有显著性差异。如果,那么,我们说的样本二阶矩与 r 的二阶矩理论值没有显著性差异。如果,那么,我们说的样本方差与理论方差没有显著性差异。 均匀性检验 均匀性检验又称为频率检验,主要检验经验频率与理论频率是否有显著性差异。 把(0,1)区间分为K个等份,以表示第i 个小区间,用ni表示 中落在第i个区间的个数,则统计量 渐近服从自由度为(k-1)的分布。给定显著性水平α,可确定二个临界值即满足 因此,如果 则认为经验频率与理论频率无显著性差异。 独立性检验 独立性检验是检验各随机数之间的统计相关性。相关系数取值为零是两个随机变量独立的必要条件,取值大小反映它们相关性的大小、故可用平检验随机数的独立性。 设有一伪随机数序列,则样本相关系数为 定义检验统计量 那么u渐近服从标准正态分布。因此给定显著性水平α,可确定临界值,那么,我们说的样本相关系数与r 均值没有显著性差异。 三、实验内容   利用JAVA语言实现伪随机数的产生及检验,程序代码及说明如下:   ① 程序建立了三个类:类“Suiji”用来产生伪随机数,类“Check”对产生伪随机数进行检验,类“Text”对程序进行功能测试。 ② 类“Suiji”的方法creat1(),creat2(),creat3()分别以 平方取中法、乘同余法及混合同乘法各产生100个伪随机数;类“Check”方法check1(),check3()分别对伪随机数序列进行参数检验、独立性检验(没有进行均匀检验)。 ③ 方法creat2()以“平方取中法”产生伪随机数,程序对可能出现的“退化”进行了处理,即如果出现了“退化”,则将初始值initialValue加1,重新产生随机数序列,直到产生的随机数序列没有“退化”为止。 ④ 平方取中法的中,取=1054;   乘同余法中,取X0=123,=7,M=10000; 混合同余法中,取X0=123,=7,M=10000,c=11; ⑴ 类Suiji原代码: //Suiji.java import javax.swing.*; public class Suiji{ private double a1[]; private doub

文档评论(0)

md85173 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档