2

有谁知道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());

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

4

2 回答 2

4

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

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

具体来说,使以下两个列表相等的数 n 是多少?

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

是否保证每个 Random 对象总是有这样的 n ,不管它的种子是什么?

期限是有限的。但是,不一定每个种子都相同。

于 2013-03-03T21:15:12.960 回答
-1

如果你真的真的很幸运,是的。否则没有。

但是从javadoc

nextInt 的一般约定是伪随机生成并返回一个 int 值。所有 2^32 个可能的 int 值都是以(大约)相等的概率产生的。

于 2013-03-03T21:15:07.943 回答