java - Random.nextInt() 产生的数字序列何时重复

标签 java random

有谁知道 Java 的 Random.nextInt() 是否会在一段时间后重复出现?

具体来说,是否存在这样一个数n使得下面的两个列表相等?

List<Integer> a = new LinkedList<>();
List<Integer> b = new LinkedList<>();

for (int i = 0; i < n; ++i)
   a.add(randObject.nextInt());

for (int i = n; i <= n * 2 ; ++i)
   b.add(randObject.nextInt());

是否保证每个随机对象都有一个句点? (注:不同种子的对象不必具有相同的周期)

最佳答案

Does anyone know if the Java's Random.nextInt() will ever repeat itself after sometime?

是的,会的。由于生成器具有有限数量的状态,因此生成的序列具有有限周期。

Concretely, what is the number n such that the following two lists are equal?

这没有指定,取决于 Java 实现。

Is it guaranteed that there will always be such n for each Random object, regardless of what its seed is?

期限是有限的。然而,不一定每个种子都一样。

关于java - Random.nextInt() 产生的数字序列何时重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190948/

相关文章:

java - 使用 GlassFish 的 WebApplication 中的文件路径

Java 类加载器和内存管理

java - 在两个数字之间生成随机数

Ruby - 范围内的随机数有异常(exception)

algorithm - 如何提高输出正确答案的概率?

java - 在多个对象之间创建其他人可以搜索的松散关系

java - 使用 Lombok Builder 注入(inject)构造函数依赖项

java - 公共(public) https 网站上的 jsse handshake_failure

C:尝试制作一个 m*n 随机正态分布数字矩阵(极坐标形式的 Box muller 2)

javascript - 使用js的多行随机文本