【问题标题】:Simple java rand() syntax [closed]简单的 java rand() 语法
【发布时间】:2013-11-26 18:37:08
【问题描述】:

我今天有一个非常简单的问题。

Random r = new Random();
r.nextInt(50)

此代码返回的数字是从 0 到 49 还是从 0 到 50(包括 50)

这个怎么样?

Random r = new Random();
10 + r.nextInt(50)

从 10 到 60(包括 60)?

【问题讨论】:

  • 当您查看Random#nextInt() 的文档时,您发现了什么?
  • 这里没有语法问题,只是Javadoc已经回答的关于语义的琐碎问题。

标签: java random


【解决方案1】:

这是直接在the docs for nextInt(int n) 中回答的(强调添加):

返回介于 0(含)和指定值(不包括)之间的伪随机、均匀分布的 int 值

参数严格大于将返回的最大整数。

r.nextInt(50)

可能返回 0,也可能返回 49,但不会返回 50。同样,

10 + r.nextInt(50)

可能是 59,但永远不会是 60。

【讨论】:

    【解决方案2】:

    nextInt(int n)- 返回一个伪随机、均匀分布的 int 值,介于 0(含)和指定值(不含)之间,取自此随机数生成器的序列。

    http://docs.oracle.com/javase/6/docs/api/java/util/Random.html

    【讨论】:

      【解决方案3】:

      根据the documentation,是0..n专属。

      此随机数生成器序列中的下一个伪随机、均匀分布的 int 值,介于 0(包括)和 n(不包括)之间

      所以,如果你想要10..60 包含在内,请使用以下代码:

      10+r.nextInt(51);
      

      【讨论】:

        猜你喜欢
        • 2012-10-18
        • 1970-01-01
        • 2015-03-16
        • 2014-02-26
        • 2013-05-17
        • 2012-09-02
        • 1970-01-01
        • 2017-11-06
        • 1970-01-01
        相关资源
        最近更新 更多