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

Raf*_*ler 14 java random

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

我想在逻辑范围内生成一个随机int.所以,比如说,我正在编写一个程序来"滚动"具有指定数量边的骰子.

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

现在的问题变成,这将返回值两侧和零之间的包容性,这是没有意义的,因为大多数的骰子从1到6,9,等等.所以,我怎么可以指定nextInt应该在1和侧面的数量之间的合作?

Eya*_*der 46

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

from + rndGenerator.nextInt(to - from + 1)
Run Code Online (Sandbox Code Playgroud)

在你的情况下(1..sides):

1 + rndGenerator.nextInt(sides)
Run Code Online (Sandbox Code Playgroud)