Java Math.random期间

Joh*_*son 9 java random

我正在研究一个关于随机数的大型学校项目,但我找不到时间段Math.random().我安装了7.0.800.15版本,我正在使用Windows 10计算机.我试过用一个简单的程序来确定句点,它保存了第一个值:

double num = Math.random(); 
Run Code Online (Sandbox Code Playgroud)

在一个数组中,然后循环,直到它再次在一行中找到相同的值,因此一个句点已经过去,但没有结果,周期太长.

所以我的问题是:Math.random()我的版本是什么时期?或者:有没有办法用简单的程序来确定周期?

编辑:拿走了指向有关JavaScript的页面的源代码,它不相关

小智 5

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