【发布时间】:2014-04-10 18:57:36
【问题描述】:
谁能解释一下为什么下面的代码会输出0 1 2 3 4 5 6 7 8 9。
Random random = new Random(-6732303926L);
for(int i=0;i<10;i++)
System.out.println(random.nextInt(10)+" ");
从 Java API Random 我可以看到构造函数 Random(long seed) 使用单个 long seed 创建了一个新的随机数生成器。那么,这又是随机的了,为什么每次都给出一个固定的输出呢?
【问题讨论】:
-
你找到了一颗很酷的种子。
-
@SotiriosDelimanolis 是特例吗?我找到了这段代码 sn-p。
-
这是一个特殊情况,就像您使用种子
1234567890或131215151351或任何其他种子一样。它输出对我们人类有意义的东西这一事实并不意味着它不是随机的(尽管仍然基于种子和算法)。 -
如果您更改种子,它会按预期工作。我想你找到了一颗神奇的种子。
-
谢谢。很抱歉造成混乱