【发布时间】:2013-12-02 09:10:46
【问题描述】:
如果为随机数生成定义了一个种子数,是否有可能在不同的计算机上实现不同的随机数序列?如果是这样,如何实现相同的序列?
private static final long seed = 1;
Random generator = new Random(seed);
for (int i = 0; i < nchrom; i++) {
val = (int) Math.round(generater.nextDouble()*(nchrom-1));
//...
}
【问题讨论】:
-
是的,但关键是我使用相同的 SEED 编号。
-
这就是 Pseudo-RNG 的原理。这些数字并不是真正随机的。它们是使用确定性算法生成的,但根据种子的不同,生成数字的顺序会有所不同。因为我总是使用相同的种子,所以我希望总是得到相同的序列。
-
如果使用相同的种子,通常应该得到相同的序列。您是否在两个系统上使用相同的 JRE 版本?