- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
伪随机数及其在JAVA程序中的应用分析.doc
伪随机数及其在JAVA程序中的应用分析 摘 要 伪随机数发展对以往的追求随机数列的方法有了很大效率上的提升,将其应用到JAVA程序当中对运行的效率有了很大改变。基于此本文则主要就伪随机数进行详细阐述,并对其在JAVA程序当中的实际应用加以详细探究分析,希望能够通过此次的理论研究对实际操作起到一定指导作用。 【关键词】JAVA程序 应用 伪随机数 当前我国的科学技术正迅猛的发展,一些软件的开发愈来愈带有技术性,当前伪随机数在软件开发和程序的设计过程中得到了较为广泛的应用。随机数在实际的应用过程中有着效率低及速度慢和占据的内存量大的缺陷,而伪随机数则通过数学递推公式产生的随机数这一形式对实际的应用效率得到了有效提升。 1 伪随机数生成原理及JAVA程序分析 1.1 伪随机数的生成原理分析 对伪随机数生成需要满足几个重要的条件,只有在这一基础上才能够实现伪随机数,主要就是序列的任意数值间的相互独立以及对概率分布的确定。从现阶段的发展情况来看,生成随机数的方法主要有两种:第一种就是通过物理方法产生的真正随机数;第二种就是在数学方法的作用下产生的有统计规律的随机数列,这两种生成方法就是最为主要的形式。在这一过程中通过相关算法产生的随机数其实并不是真是的,这就是所谓的伪随机数,其产生的主要原理就是通过编译器对伪随机数提供生成器,然后在生成器的作用支持下对产生的数列精确度及均匀性最大化的保障,接着就是进行对整数实际的应用并传输给函数,这样就能够对数段间的整数数量进行有效的制约。 1.2 关于JAVA程序的理论分析 这一程序对源代码以及二进制字节码间的转换后。通过虚拟技术进行执行字节码,这样就对编译和到处执行等跨平台特性的实现比较有利。JAVA程序在语言上相对比较简单,并且是分布式以及安全的,虽然在这些方面有着优越性,但其自身还是存在着一些局限,也就是需要对程序中伪随机数的应用进行分析才能够实现。 2 伪随机数生成的方式及在JAVA程序当中的实际应用 2.1 伪随机数的生成方式分析 伪随机数的生成方式是多样性的,它可以通过多种方式来生成,最为常见的就是平方取中法以及线性同余法和非线性同余法等。其中伪随机数能够通过递推公式来产生,an+1=f(an) n=1,2,……通过这一通用公式就能够看出,在计算的方法及初值得到了确定之后,那么在随机数列方面也就得到了确定,这和随机数列独立性要求是有着矛盾性存在的。不仅如此,伪随机数还会出现周期性的循环,在这一情况下要能够满足分布的均匀性及统计上的独立性和足够长的周期,并要在内存的占用上要达到最少,所产生的随机数速度要足够的快。 从伪随机数的线性同余法的方式上来看,这是最为常用的一种方法,这是在上世纪五十年代提出的,ni+1=(af(ni)+b)mod mi=0,1,2,...,m-1生成数值序列称为是同余数列,并在其序列当中常熟的选择,对随机序列相关随机性能都有着直接性的关系,所以对常熟进行适当的选择能够对伪随机数的区间均匀性得到有效保持。想要提高种子的均匀性就是通过算法的处理进行对整数溢出加以防止,从而才能够保障伪随机数均匀并不重复。在这一过程中,线性同余法不只是和种子有关,同时和参数m、a、c的选取也有着关联(如下表所示)。 种子及参数关系表 a b no m 周期随机序列 7 7 7 10 46, 9, 0,7, 6, 9…… 5 3 7 16 16 6,1,8,11,10,5,12,15,14,9,0,3,2,13,4,7,6,... 5 1 1 8 86,7,4,5,2,3,0,1,6,7.. 2.2 伪随机数在JAVA程序当中的实际应用 Random类的实现方面主要是在JDK最初版本发布时候就能够使用JAVA.util.Random类产生随机数,所以Random类也主要是在nextInt这一方法的作用下得以完成的,这一过程结果可通过代码进行详细的了解: Random random Generator=new Random(); int random Number=random Generator.nextInt(n); 其中就使用到了random类的nextInt方法,在这一方法的产生随机数范围基础上,可结合特定应用程序需要的不同而进行转变。首先要进行递进参数: value=1+random Generator.nextInt 在这一语句当中就产生了从1到6范围内的随机整数,当进行递进参数而对过程中,通过nextInt这一方法返回值范围为0到参数值减1。在这一过程中需要对应用程序当中的骰子滚动和显示进行实际的应用,这时候就需要在rollDice
文档评论(0)