相关疑难解决方法(0)

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

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

public int random(int i){
    Random randnum = new Random();
    randnum.setSeed(123456789);
    return randnum.nextInt(i);
}
Run Code Online (Sandbox Code Playgroud)

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

System.out.println(numbers.random(10));
System.out.print(numbers.random(10));
Run Code Online (Sandbox Code Playgroud)

它总是打印相同的数字,例如5 5.我需要做什么才能打印两个不同的数字,例如5 8

我必须设置种子.

谢谢

java random

21
推荐指数
3
解决办法
8万
查看次数

Java:Can(new Random()).nextInt(5)总是返回相同的数字?

有时这段代码总是返回相同的数字(有时它工作正常):

(new Random()).nextInt(5)
Run Code Online (Sandbox Code Playgroud)

我怀疑问题在哪里 - 它可能总是创建一个具有相同种子的新Random.那么什么是最好的解决方案:

  • 为Random()创建一个静态var并改为使用它.
  • 使用Math.random()*5(看起来它在内部使用静态var)

或者是其他东西?我不需要任何看似随意的东西.

如果有人能够解释为什么原始代码有时会起作用而有时却不能解释,那将会很有帮助.

谢谢.

java random

4
推荐指数
3
解决办法
3万
查看次数

标签 统计

java ×2

random ×2