为 Random.nextInt() 指定 max 和 min?

2022-09-02 23:23:16

可能的重复:
Java:在一个范围内生成随机数

我想在逻辑范围内生成一个随机的int。例如,我正在编写一个程序来“掷”具有指定数量边的骰子。

public int rollDice() {
     Random generator = new Random();
     return generator.nextInt(sides);
}

现在问题变成了这将返回边和零之间的值,包括零,这是没有意义的,因为大多数骰子从1到6,9等。那么我该如何指定 nextInt 应该在 1 和边数之间工作呢?


答案 1

要在 fromto (包含) 之间生成随机 int 值(均匀分布),请使用:

from + rndGenerator.nextInt(to - from + 1)

在您的情况下(1..侧面):

1 + rndGenerator.nextInt(sides)

答案 2

推荐