我正在做一个关于随机数的大型学校项目,但我找不到 Math.random()
的句点。我安装了 7.0.800.15 版本,并且正在使用 Windows 10 计算机。我试过用一个简单的程序来确定周期,该程序保存了以下的第一个值:
double num = Math.random();
在一个数组中,然后循环,直到再次在一行中找到相同的值,这样就过了一个周期,但是没有结果,这个周期太长了。
所以我的问题是:在我的版本中 Math.random()
的周期是多少?
或者:有没有一种方法可以使用简单的程序来确定周期?
编辑:删除了指向有关 JavaScript 的页面的源代码,它不相关
最佳答案
Java 的 Math.Random 使用模数为 2^48 的线性同余生成器。这种具有精心选择的参数的伪随机发生器的周期等于模数。显然,Java 中的参数是精心选择的,所以实际上周期是 2^48。
资料来源: https://en.wikipedia.org/wiki/Linear_congruential_generator http://www.javamex.com/tutorials/random_numbers/java_util_random_algorithm.shtml#.WKX-gRJ97dQ
关于Java Math.random 周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282975/