Как сгенерировать рандомное число в java
Можно использовать метод 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]