有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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();
  ...

但这似乎不太好

有什么想法吗


共 (2) 个答案

  1. # 1 楼答案

    是的,您需要将相同的随机实例作为参数传递,或者通过全局(静态变量或单例)传递

  2. # 2 楼答案

    如果在不同的类中使用相同的随机数,并且希望具有复制能力,那么需要确保它也以相同的顺序使用。如果你的类以不同的顺序执行,例如如果它是多线程的,你会得到不同的结果