Java Random生成全1

时间:2016-10-02 22:42:57

标签: java random

这让我很难过。为什么这会返回一个全1的字符串?我确实认为它与种子价值有关。当改变时,数字变得更加多样化。

Random random = new Random(441287210L);

for (int i = 0; i < 10; i++)
   System.out.print(random.nextInt(10) + " ");

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

如果随机算法无法生成以10个连续1开始的序列,那么它将不是一个非常好的随机算法。只要它只发生1 / 10,000,000,000种子。使用48-bit seed,您应该找到大约28,000个做同样事情的种子。

答案 1 :(得分:3)

恭喜,您碰巧找到了与100亿次出现的概率相对应的种子。鉴于Java的Random周期为2 ** 48,应该有大约28,000个种子可以产生相似的行为。