Java:随机设置种子
问题描述:
我有一个小概念问题。Java:随机设置种子
我需要给我的随机播种,这样当我重新加载自己的关卡时,我总是会得到相同的自由度。因此我需要使用Random#setSeed
。
我有那么问题是,然后我需要做一个
Random r = new Random();
r.setSeed(currentSeed);
的问题是,我有那么必须要通过/穿过我的代码获取的r
此实例。
我想知道是否有解决方案接近C:
Math.Random(currentSeed);
我现在拥有的最接近的是:
ClassA:
public static Random r;
private int currentSeed = ...;
initRandom(){
r = new Radom(currentSeed);
}
ClassB:
...
//instead of Math.random();
r.random();
...
但这似乎并不很好。
任何想法?
答
是的,你需要传递相同的Random实例,无论是作为参数,还是通过全局(静态变量或单例)的均值。
答
如果您在类中使用相同的随机数,并且需要可复制性,则需要确保它以相同的顺序使用。如果您的课程按不同的顺序执行,例如如果它的多线程你会得到不同的结果。
没有多线程,从一个xml中读取并在列表中进行排序,所以我总是发出相同的命令^^ – 2010-12-02 08:37:58