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

Аватар пользователя Ilnaz Kamalov
Ilnaz Kamalov
10 ноября 2022

Можно использовать метод Math.random():

По умолчанию Math.random() генерирует случайные вещественные числа из промежутка [0;1), то есть от нуля включительно до 1 исключительно. Причем этот метод генерирует вещественные числа, например 0,999.

public class Test {

    public static void main(String[] args){
        double a = Math.random();
                System.out.println (a);
    }
}

А что если нам нужно сгенерировать целочисленную переменную? Например нам нужно сгенерировать число от 0 до 2. Вот решение:

public class Test {

    public static void main(String[] args){
        int a = (int) ( Math.random() * 3 );
    }
}

Как это работает?

Шаг №1: Диапазон [0;1) умножаем на 3. Соответственно,

Нижняя граница: 0*3 =0

Верхняя граница:1*3 =3

Получили диапазон [0;3). Скобка после числа 3 круглая. Это значит, что 3 не входит в диапазон, то есть максимальное число, которое может быть сгенерировано в этом диапазоне это 2,999. Одним словом - мы имеем дело с вещественными (дробными) числами.

Шаг №2: Поэтому применяем (int) перед Math.random()*3. Дробная часть отсекается и мы получаем диапазон [0;2]

0 0