/
Вопросы и ответы
/
Java
/

Как получить рандомное число в java

Как получить рандомное число в java

5 лет назад

Человек-Молекула

Ответы

1

Для генерации случайных чисел в Java можно использовать класс java.util.Random

Пример генерации случайного целого числа в диапазоне от 0 до 99:

1
2
Random random = new Random();
int randomNumber = random.nextInt(100); // вернет случайное число от 0 до 99

Если нужно получить случайное вещественное число, можно воспользоваться методом nextDouble() Например, чтобы получить случайное вещественное число от 0 до 1:

1
2
Random random = new Random();
double randomDouble = random.nextDouble(); // вернет случайное число от 0 до 1

Так же можно использовать метод Math.random(). Этот метод возвращает псевдослучайное число с плавающей запятой в диапазоне от 0.0 (включительно) до 1.0 (исключая).

Например:

1
int randomNum = (int)(Math.random() * 10) + 1;

В этом примере Math.random() вернет число от 0.0 до 0.9999999, после чего его умножат на 10, получится число от 0.0 до 9.9999999, и затем к нему добавят 1, чтобы получить число от 1 до 10.

4 года назад

Иван Полежаев

0

В Java есть несколько способов получить случайное число.

Можно, используя класс Math:

1
2
double randomDouble = Math.random(); // От 0.0 до 1.0
int randomInt = (int)(Math.random() * 100); // От 0 до 99

Также используя класс Random:

1
2
3
4
5
import java.util.Random;

Random rand = new Random();
int randomInt = rand.nextInt(100); // От 0 до 99
double randomDouble = rand.nextDouble(); // От 0.0 до 1.0

Если вы хоите получить число в определенном диапазоне:

1
2
3
int min = 50;
int max = 100;
int randomInRange = rand.nextInt(max - min + 1) + min; // От 50 до 100

Math.random() внутри использует Random, но создает новый экземпляр при каждом вызове, что может быть менее эффективно при многократном использовании.

Класс Random же более гибкий и предоставляет больше методов для генерации случайных чисел.

2 года назад

Ivan Mamtsev

0

Случайное целое число в Java даёт метод nextInt() класса java.util.Random:

1
2
3
4
import java.util.Random;

Random random = new Random();
int n = random.nextInt(100);   // от 0 до 99

Верхняя граница в результат не входит.

Число в диапазоне от min до max

1
2
3
int min = 1;
int max = 6;
int dice = random.nextInt(max - min + 1) + min;   // от 1 до 6 включительно

С Java 17 можно передать обе границы:

1
int dice = random.nextInt(1, 7);   // от 1 до 6

Без создания объекта — через ThreadLocalRandom:

1
2
3
import java.util.concurrent.ThreadLocalRandom;

int n = ThreadLocalRandom.current().nextInt(0, 101);   // от 0 до 100

Math.random()

Math.random() возвращает дробное число от 0.0 до 1.0, единица не входит. Целое число из него получают умножением:

1
int n = (int) (Math.random() * 101);   // от 0 до 100

Какой способ выбрать

СпособЧто даётКогда использовать
new Random().nextInt(n)целое от 0 до n−1обычные задачи
ThreadLocalRandom.current().nextInt(a, b)целое от a до b−1многопоточный код
Math.random()дробное от 0.0 до 1.0быстро получить дробное
new SecureRandom()непредсказуемые числапароли, токены, коды подтверждения
new Random(42)одна и та же последовательность при каждом запускетесты

Другие типы

1
2
3
double d = random.nextDouble();     // от 0.0 до 1.0
boolean b = random.nextBoolean();   // true или false
long l = random.nextLong();

Случайный элемент массива

1
2
String[] colors = {"красный", "зелёный", "синий"};
String color = colors[random.nextInt(colors.length)];

Один Random на всю программу

Создавать новый Random на каждой итерации цикла не нужно. Создайте один объект до цикла и вызывайте у него nextInt().

Классы стандартной библиотеки разбирают в бесплатном курсе «Основы Java», язык целиком — на профессии «Java-разработчик».

12 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845