Java Math.random 周期

标签 java random

我正在做一个关于随机数的大型学校项目,但我找不到 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/

相关文章:

java - 使用 java Runtime() 或 Process Builder 执行或运行应用程序

java - 如何将 JLabel 添加到另一个类的 JFrame 中?

java - Tomcat 和 spring-boot-starter

java - Spring 在普通 Java 程序中注入(inject)依赖项

r - 以给定的概率生成随机数

c++ - 在 C++ 中不替换地采样 3 个整数

algorithm - 以等概率在 NxN 板上随机标记 M 个单元格

java - jdbc 不运行 SQL Developer 运行的内容

matlab - MATLAB 中的布丰针

python - 在 Python 中生成随机向量