伪随机数及其在JAVA程序中应用分析.docVIP

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

伪随机数及其在JAVA程序中应用分析   摘 要: 原始追求随机数列的方法具有效率低、速度慢、存储空间占据量大以及不可重现的缺点,伪随机数列是通过模拟计算机需求以及各种概率的计算来实现的,伪随机数在程序设计和软件开发中得到日益广泛的使用。伪随机数具有其生成的原理和方法,通过对伪随机数生成原理的分析,来探讨其在JAVA程序中的具体应用。   关键词: 伪随机数;生成;JAVA程序;应用   中图分类号:TP301 文献标识码:A 文章编号:1671-7597(2012)1010156-01   在运用蒙特卡罗法解决实际问题的过程中,会用到不同分布的随机向量、随机变量以及随机过程中η的抽样序列,比如{ηn|n=1,2,…}等等,这些数可以称作随机数。常用的随机数有均匀分布的随机数、二维正态分布的随机数以及二项分布的随机数等,其中均匀分布的随机数是最基本和最重要的。随机数在构建大型游戏、随机模型、动画设计、数字水印、计算机仿真、数字图书保护、数据加密以及分形图形技术等方面有重要作用,因此,伪随机数在计算机上的产生方法备受重视。   1 随机数以及JAVA程序概述   1)随机数的概念。随机数的条件有两个,一是满足确定概率分布,二是序列任意数值间相互独立,随机数在测试和时间环境模拟中占有重要位置。目前产生随机数的方法有两种,一是用物理方法来产生真正随机数,二是用数学方法来产生有一定统计规律的随机数列,也就是伪随机数。真正随机数是由硬件产生的,各种物理设备和装置是早期生成随机数的来源,但是由于硬件耗资较高、生成数据的速度较慢、空间占据量大以及不可重现等原因,真正随机数的使用价值有限。而伪随机数在使用之前需要接受检验,通过各种计算机函数库就可以获取伪随机数。   2)JAVA程序。JAVA是面向对象的一种程序设计语言,它舍弃了C++语言中多重继承、运算符重载以及一些容易引发错误的指针等特性,继承了面向对象的技术,通过垃圾清理的方式来增加内存空间,还加入了自动装箱、类型安全枚举等语言特性。JAVA程序首先进行源代码和二进制字节码之间的转换,之后再利用虚拟机来执行字节码,这有利于一次编译和到处执行等跨平台特性的实现。JAVA程序的语言是简单的、面向对象的、分布式的、安全的、可移植的以及解释型的,但是JAVA语言也有一定的局限性,需要通过分析伪随机数在JAVA程序中的应用来实现。   2 伪随机数生成机制   通过对随机数定义的分析,算法生成的随机数都不是真正随机数,这就说明了算法生成的只能是伪随机数。但是伪随机数也并非是假的随机数,计算机生成的伪随机数既是有规律的又是随机的。   1)伪随机数产生原理。编译器一般都会提供伪随机数的生成器,提供的原因就是以此来保证随机数列产生的均匀性以及精度,比如要求生成1到10之间的伪随机数,但是0和1间有无穷个值,随机数生成器保证了随机数产生的精度。生成器可以对产生的整数进行调用和采用,并将这些整数传给函数,由此来限制数段之间整数的数目。伪随机数生成器可以将种子作为初始的整数传给函数,由此生成的随机数具有较高的普遍性。经过分析可以发现,如果初始种子相同,生成的相关随机数列也相同,随机数生成器产生的数是不可预测的。   2)伪随机数生成方法。平方取中法、线性同余法、斐波那契法、乘同余法、非线性同余法以及混合同余法等都能产生伪随机数。伪随机数可以通过递推公式产生,在初值和递推公式确定以后,就可以得到随机数数列,但这和随机数独立性要求相互矛盾,伪随机数的周期性循环也和真正的随机数有所区别。因此,伪随机数在计算机生成的过程中需要满足以下要求,首先是分布均匀性,即随机数在统一范围内出现的概率相同。其次是统计独立性,即随机数序列产生的相关性愈小愈好,再次是周期长,即在随机数重复之前可以产生不重复的、足够多的随机数。此外,伪随机数还有占用内存少和产生随机数速度快的优点。   3)线性同余法。虽然产生伪随机数的方法有很多,但是线性同余法还是比较常用的,该办法于1951年由Lehmer提出,有递推公式r k=(multiplier*r k-1+increment)%modulus,   生成数值的序列称为同余数列,序列中常熟的选择直接关系到随机序列的相关随机性能。适当的选取常熟可以保证伪随机数区间上的均匀性,除此之外,线性同余法还和种子有关。Wile保证线性同余法统计的性质,要提高种子的均匀性,通过进行算法处理的方式来防止整数的溢出,保证伪随机数均匀且不重复。   4)其他生成方法简介。由于过量的真正随机数会占用较大的内存,而真正随机数的产生又是不可重复的,因此有必要掌握周期有限且适合计算机??伪随机数计算方法。首先,平方取中法。该种产生伪随机数的办法是在1946年被诺伊曼提出,它首先要选用一个位数作为种子,在不足二倍位

文档评论(0)

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

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

1亿VIP精品文档

相关文档