2013-11-26 7 views
-5

У меня сегодня действительно простой вопрос.Простой синтаксис java rand()

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

ли возвращаемые номера этого кода от 0 до 49 или от 0 до 50 (в том числе 50)

А как Abaut этого?

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

От 10 до 60 (в том числе 60)?

+2

Когда вы посмотрели документацию для 'Random # nextInt()', что вы нашли? – GriffeyDog

+0

Здесь нет синтаксического вопроса, просто тривиальный вопрос о семантике, на который уже ответил Javadoc. – EJP

ответ

3

Это отвечает непосредственно в the docs for nextInt(int n) (курсив):

Возвращает псевдохаотическом равномерно распределенное значение INT между 0 (включительно) и заданным значением (эксклюзивных)

аргумент строго больше максимального числа, которое будет возвращено.

r.nextInt(50) 

может возвращать 0 и может вернуться 49, но не вернется 50. Точно так же,

10 + r.nextInt(50) 

может быть 59, но никогда не будет 60.

3

nextInt (int n) - возвращает псевдослучайное равномерно распределенное значение int между 0 (включительно) и заданным значением (исключительным), взятым из последовательности генератора случайных чисел.

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

0

Согласно the documentation, это 0..n эксклюзив.

следующий псевдослучайных равномерно распределяется ИНТ значение между 0 (включительно) и п (эксклюзив) из последовательности этого генератора случайных чисел в

Итак, если вы хотите 10..60 включительно, используйте следующий код:

10+r.nextInt(51); 
Смежные вопросы