当我设置种子时,Java随机总是返回相同的数字?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我需要使用我创建的随机数生成器的帮助。我的代码如下(在一个名为数字的类中):

public int random(int i){
    Random randnum = new Random();
    randnum.setSeed(123456789);
    return randnum.nextInt(i);
}

当我从另一个类调用此方法(为了生成一个随机数)时,它总是返回相同的数字。例如,如果我要这样做:

System.out.println(numbers.random(10));
System.out.print(numbers.random(10));

它总是打印相同的数字,例如5 5.我必须做什么以便打印两个不同的数字,例如5 8

我设定种子是强制性的。

提问于
用户回答回答于

你需要Random()在class共享实例:

public class Numbers {
    Random randnum;

    public Numbers() {
        randnum = new Random();
        randnum.setSeed(123456789);
    }

    public int random(int i){
        return randnum.nextInt(i);
    }
}
用户回答回答于

如果你总是设置种子,你总会得到相同的答案。这就是设定种子的原因。

可能回答问题的人

  • 璟櫆

    4 粉丝476 提问38 回答
  • 微信资讯小编

    1 粉丝479 提问33 回答
  • i太过热闹的梦

    2 粉丝462 提问32 回答
  • 嗝屁

    17 粉丝487 提问32 回答

扫码关注云+社区