Как на языке Java получить случайное число?
Asked
Active
Viewed 4.8k times
21
-
и у кого только рука поднялась вопрос заминусовать? По 1000 просмотров в год! Почти по 3 просмотра в день! – Andrew Kachalin Sep 11 '15 at 07:40
2 Answers
24
import java.util.Random;
// Инициализируем генератор
Random rnd = new Random(System.currentTimeMillis());
// Получаем случайное число в диапазоне от min до max (включительно)
int number = min + rnd.nextInt(max - min + 1);
Функция rnd.nextInt(limit) возвращает число от нуля (включительно) до limit (не включая limit).
kirelagin
- 4,508
- 22
- 29
-
2А зачем abs? Его можно просто убрать и всё будет ок и работать будет даже с отрицательными min и max – cy6erGn0m Jan 28 '11 at 12:11
-
9
Вариант 1:
Более сложный и более функциональный. Возвращает случайное число от 0 до того что указано в скобках (не включая). Тип возвращаемого числа зависит от использованного метода - nextInt, nextDouble, nextFloat и пр.
Random random = new Random();
int num = random.nextInt(100);
Если нужен какой-то конкретный промежуток чисел, то делаем так.
Random random = new Random();
int num = 36 + random.nextInt(100 - 36);
Вернет случайное целое число от 36 до 99.
Вариант 2:
Простой, но менее функциональный. Возвращает случайное число типа double от 0 до 1.
double num = Math.random();
kulikovman
- 1,066
-
никак не могу понять как вы получили промежуток от 36 до 99, я не умею пользоваться этой функцией – midnightelf18 Dec 27 '18 at 17:08
-
1@icedev-sk, функция
random.nextInt(x)генерирует случайное число от 0 до x-1, вот собственно и все. Если нужно получить от 36, делаем поправку на это, прибавляя 36 к результату и вычитая 36 из возможного максимума. – kulikovman Dec 28 '18 at 20:34