失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java 随机数 分布_Java环境下各种分布随机数的生成研究与实现

java 随机数 分布_Java环境下各种分布随机数的生成研究与实现

时间:2022-01-01 16:10:08

相关推荐

java 随机数 分布_Java环境下各种分布随机数的生成研究与实现

引言随机数已经广泛地应用于仿真、信息安全、数值分析、通讯系统、决策、软件测试和游戏等领域[1~3].比如在计算机仿真学中,就是通过建立数学模型、编制程序,运用随机数据对真实系统模拟,研究系统的行为或特性,随机数的生成方法是计算机仿真的基础[4~5].计算机中产生随机数的方法有两种,一是物理方法,也就是一种通过物理过程而不是计算机程序来生成随机数字的方法,通过不断收集非确定性的设备事件,比如物理噪音,周围的wifi信号强度,鼠标移动方向和速度,甚至光线强度变化,等等,这类随机数称为真随机数[6],它的优点是随机性很好,但无法进行重复实验以及复查检查;另一种是数学方法,也就是在计算机上用数学方法而产生的数列,是依照某种算法产生的,不是真正的随机数,这类随机数称为伪随机数,它的优点是产生速度快,移植性强,但伪随机数是由随机种子根据一定的计算方法计算出来的数值,所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变.1均匀分布随机数的生成在生产实际和科学研究中,人们提出了多种不同的伪随机数生成算法,常见的有平方取中法、Fibonacci方法、线性同余法、混沌映射法、无理数变换法等,其中线性同余法[7~8]是目前最常采用的伪随机数的生成方法.线性同余法(Linear Congruential Generator,LCG for short)是Lehmer于1951年提出的,此方法是利用数论中的同余运算来产生随机数,因此称为同余法.其递推公式为:xi+1=(axi+b)mod Mri=xiM(i=0,1烅烄烆,…)其中M为模数,a为乘数,b为增量,x0为种子,且xi,a,b,M均为非负整数.显然由上面公式得到的xi(i=0,1,…)满足:0≤xi>>(48-bits));}从代码可以看出,jdk就是采用线性同余法生成随机数的,其中各参数分别是a=0x5DEECE66DL,b=0xBL,M=248,因为x&((1L<<48)–1)与x(mod 248)运算是等价的.而种子

如果觉得《java 随机数 分布_Java环境下各种分布随机数的生成研究与实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。