今天我得到了一个非常简单的问题。简单的java rand()语法
Random r = new Random();
r.nextInt(50)
此代码是否返回数字从0到49或从0到50(包括)
怎么abaut这一个?
Random r = new Random();
10 + r.nextInt(50)
从10至60(包括)?
今天我得到了一个非常简单的问题。简单的java rand()语法
Random r = new Random();
r.nextInt(50)
此代码是否返回数字从0到49或从0到50(包括)
怎么abaut这一个?
Random r = new Random();
10 + r.nextInt(50)
从10至60(包括)?
这在the docs for nextInt(int n)
直接回答(强调):
返回一个伪随机均匀分布的int值介于0(含)和指定值(独家)
的参数严格大于将要返回的最大整数。
r.nextInt(50)
可能返回0并可能返回49,但不会返回50.同样,
10 + r.nextInt(50)
可能是59,但绝不是60
nextInt (int n) - 返回一个伪随机数,它是从0(包含)到指定值(不包括)之间的均匀分布的int值,从此随机数生成器的序列中抽取。
http://docs.oracle.com/javase/6/docs/api/java/util/Random.html
据the documentation,这是0..n
排斥。之间
下一个伪均匀分布的int值0(含)和N(独家)从此随机数生成器的序列
所以,如果你想10..60
包容性,使用以下代码:
10+r.nextInt(51);
当您查看Random#nextInt()的文档时,您发现了什么? – GriffeyDog
这里没有语法问题,只是关于Javadoc已经回答的语义问题的一个小问题。 – EJP