Java:随机设定种子
我在概念上有个小问题
我需要种子我的随机,以便我总是得到相同的radom当我重新加载我的水平
因此,我需要使用^{
我当时的问题是,我需要做一个
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();
...
但这似乎不太好
有什么想法吗
# 1 楼答案
是的,您需要将相同的随机实例作为参数传递,或者通过全局(静态变量或单例)传递
# 2 楼答案
如果在不同的类中使用相同的随机数,并且希望具有复制能力,那么需要确保它也以相同的顺序使用。如果你的类以不同的顺序执行,例如如果它是多线程的,你会得到不同的结果