【问题标题】:Specify max and min for Random.nextInt()? [duplicate]为 Random.nextInt() 指定最大值和最小值? [复制]
【发布时间】:2010-07-23 19:17:01
【问题描述】:

可能重复:
Java: generating random number in a range

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

公共 int rollDice() {
     随机生成器 = new Random();
     返回 generator.nextInt(sides);
}

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

【问题讨论】:

  • 你能用 return generator.nextInt(sides-1)+1 吗?
  • 请查看this SO post。希望它有所帮助:)
  • 我想你的意思是 generator.nextInt(sides)+1
  • 是的,我的错 :) 我总是忘记在这种情况下包容意味着 0

标签: java random


【解决方案1】:

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

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

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

1 + rndGenerator.nextInt(sides)

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多