Создание случайного двойника в диапазоне

У меня есть два двойника, например, следующие

double min = 100;
double max = 101;

и со случайным генератором, мне нужно создать двойное значение между диапазоном min и max.

Random r = new Random();
r.nextDouble();

но здесь нет ничего, где мы можем указать диапазон.

Ответ 1

Чтобы создать случайное значение между rangeMin и rangeMax:

Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();

Ответ 2

Этот вопрос задавался перед выпуском Java 7, но теперь есть еще один возможный способ использования API Java 7 (и выше):

double random = ThreadLocalRandom.current().nextDouble(min, max);

nextDouble вернет псевдослучайное двойное значение между минимальным (включенным) и максимальным (исключительным). Оценки не обязательно int и могут быть double.

Ответ 3

Используйте это:

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. Мой первый ответ был неправильным.