Хорошо. Во-первых, попытаться создать только Random
экземпляр один раз, но для примера
int rand = -15 + new Random().nextInt(31);
является диапазон от -15 до 15. Random.nextInt(int)
JavaDoc говорит (частично) Возвращает псевдохаотическом равномерно распределенную значение INT в диапазоне от 0 (включительно) и указанное значение (исключение). Обратите внимание, что приведенный вами пример (30 - 20) + 1
- это диапазон от 0 до 10 (включительно).
Редактировать
в качестве еще одного примера, чтобы получить диапазон от 20 до 30 вы
int rand = 20 + new Random().nextInt(11);
Помните, что границы результата 0 до n
.
Редактировать 2
30 - -10. Я пытаюсь сделать симулятор выживания. Это будет моя температура.
Ok. Давайте напишем этот диапазон как -10
до 30
. nextInt(n)
вернет значение между 0
и n
, поэтому, если вам нужен диапазон ниже 0, вы должны вычесть 10
из результата и добавить 10
в n
. Это
Random random = new Random();
int rand = random.nextInt(41) - 10;
Теперь давайте рассмотрим, как мы можем определить эти числа. Помните, nextInt()
вернется между 0
и n
(эксклюзивно), и мы хотим, чтобы -10
- 30
(включительно); поэтому 41
- n
, и мы вычитаем 10
. Если результат 0
(мин.), Мы получаем -10
, если результат 40
(максимальный), мы получаем 30
.
«Это возвращает случайное число в диапазоне от 30 до 20» - Нету ... – alfasin
@alfasin Я собирался сказать то же самое. Кроме того, OP, какой диапазон - диапазон чисел, который вы хотите иметь? –
Возможный дубликат [Как генерировать случайные положительные и отрицательные числа в java] (http://stackoverflow.com/questions/3938992/how-to-generate-random-positive-and-negative-numbers-in-java) –