Ответ 1
Чтобы создать случайное значение между rangeMin
и rangeMax
:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
У меня есть два двойника, например, следующие
double min = 100;
double max = 101;
и со случайным генератором, мне нужно создать двойное значение между диапазоном min и max.
Random r = new Random();
r.nextDouble();
но здесь нет ничего, где мы можем указать диапазон.
Чтобы создать случайное значение между rangeMin
и rangeMax
:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
Этот вопрос задавался перед выпуском Java 7, но теперь есть еще один возможный способ использования API Java 7 (и выше):
double random = ThreadLocalRandom.current().nextDouble(min, max);
nextDouble
вернет псевдослучайное двойное значение между минимальным (включенным) и максимальным (исключительным). Оценки не обязательно int
и могут быть double
.
Используйте это:
double start = 400;
double end = 402;
double random = new Random().nextDouble();
double result = start + (random * (end - start));
System.out.println(result);
EDIT:
new Random().nextDouble()
: случайным образом генерирует число от 0 до 1.
start
: начать номер, сдвинуть число "вправо"
end - start
: интервал. Random дает вам от 0% до 100% от этого числа, потому что случайный дает вам число от 0 до 1.
ИЗМЕНИТЬ 2: Tks @daniel и @aaa bbb. Мой первый ответ был неправильным.