Кому не трудно, можете объяснить для чего в выражении x = (int) (Math.random()*(upperBound-lowerBound) + lowerBound); нужен +lowerBound? Никак додуматься не могу
Hercules
21 уровень
Вопрос по алгоритму
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ВладимирExpert
7 октября 2022, 21:17решение
Math.random() генерирует случайное число от 0 до 1
если тебе надо сгенерировать число от 0 до например 20, то это и не будет важно, но если например поставить задачу сгенерировать от 5 до 20, то это необходимо. разъясняю ниже.
Если мы будем считать без + lowerBound, то (int) Math.random() * (20 - 5) = (0....1) * 15 = 0...15, мы получили в результате случайное число от 0 до 15, но нам то надо получит от 5 до 20, для этого прибавляя + lowerBound, которая в нашем случае равна 5, мы видим следующее
(0.....15) + 5 = 5.....20. Таким образом и будет выполнена поставленная задача.
+7