我今天得到了一个非常简单的问题。
Random r = new Random();
r.nextInt(50)
此代码是否会返回0到49或0到50之间的数字(包括 50)
这个怎么样?
Random r = new Random();
10 + r.nextInt(50)
从10到60(包括 60)?
答案 0 :(得分:3)
直接在the docs for nextInt(int n)
(强调添加)中回答:
返回伪随机,均匀分布的int值介于0(含)和指定值(独占)
之间
参数严格大于将返回的最大整数。
r.nextInt(50)
可能会返回0并可能返回49,但不会返回50.同样,
10 + r.nextInt(50)
可能是59,但永远不会是60。
答案 1 :(得分:3)
nextInt(int n) - 返回从该随机数生成器序列中提取的伪随机,均匀分布的int值,介于0(包括)和指定值(不包括)之间。
http://docs.oracle.com/javase/6/docs/api/java/util/Random.html
答案 2 :(得分:0)
根据the documentation,它是0..n
独占的。
下一个伪随机数,从该随机数生成器的序列中均匀分布的0值(包括)和n(不包括)之间的值
因此,如果您想要10..60
,请使用以下代码:
10+r.nextInt(51);