2015-09-16 2 views
0

Я видел здесь много сообщений о генерации случайных чисел с определенным диапазоном в JAVA (especially this one). Тем не менее, я не нашел тот, который описывает, как создать случайное число между отрицательным MAX и отрицательным MIN. Возможно ли это на Java?Возможно ли генерировать случайный диапазон отрицательных чисел в Java?

Например, если я хочу создать случайное число между (-20) и (-10). Используя что-то вроде ниже приведет только в JAVA Exception, который кричит о п того, чтобы быть положительным:

int magicNumber=(random.nextInt(-20)-10); 
+0

Как насчет генерации * положительного * случайного числа от 10 до 20, а затем принятия отрицательного значения с помощью '-'? Я думаю, это может сработать. – WhiteViking

ответ

9

Просто генерировать случайное число в диапазоне от 10 до 20, а затем отрицать это.

+0

Это скорее работа, а скорее создание случайного числа. Вы не согласны? – JonathanScialpi

+4

@JonathanScialpi nope –

+1

Ну, я не думаю, что это работа вокруг определения случайного числа состоит в том, что каждое число равновероятно, чтобы его выбрали правильно. Таким образом, по этому стандарту это именно то, что он делает. Каждое число в вашем отрицательном диапазоне равновероятно, чтобы быть выбранным, поэтому я думаю, что имеет смысл использовать его таким образом. – Amr

2

Другим вариантом было бы создать случайное число от 0 до 10, а затем вычесть 20, если это меньше похоже на работу вокруг вас.

2

Я не совсем уверен, что вы хотите, но ThreadLocalRandom есть метод, который принимает диапазон, который также может иметь отрицательные значения:

ThreadLocalRandom.current().nextInt(-20, -10 + 1) 

Там нет практической разницы просто отрицая результат положительный случайный, хотя.

Смежные вопросы