Введение
Java предоставляет несколько встроенных методов для генерации случайных чисел в своих классах Math и Random. Однако генерация случайных чисел в заданном диапазоне может представлять собой сложность. В этом лабораторном задании вы изучите различные методы генерации случайных чисел в заданном диапазоне, в том числе:
Генератор случайных чисел с использованием класса Math
Мы можем использовать метод Math.random() для генерации значения типа float в диапазоне от 0 до 1, что подходит для генерации случайных чисел. Тем не менее, генерация значений типа float в определенном диапазоне представляет собой сложность.
В этом методе мы сгенерируем случайное число между min и max (включая min и исключая max), используя формулу метода Math.random().
Вот пример кода:
public static int randomNumberGenerator(int min, int max) {
double r = Math.random();
int randomNum = (int) (r * (max - min)) + min;
return randomNum;
}
Для использования этого метода вызовите метод randomNumberGenerator() и передайте целые числа - аргументы минимального и максимального диапазонов; метод вернет случайное целое число в заданном диапазоне.
Вот код, который использует метод randomNumberGenerator() для генерации двух случайных чисел; первое должно быть в диапазоне от 5 до 105, а второе - в диапазоне от 2199 до 2200.
int r1 = randomNumberGenerator(5, 105);
int r2 = randomNumberGenerator(2199, 2200);
Для выполнения этого метода выполните следующие команды в терминале:
$ cd project
$ touch RandomNumbers.java
// вставьте код
$ javac RandomNumbers.java
$ java RandomNumbers
Генератор случайных чисел с использованием класса Random
Другой способ генерации случайных чисел в заданном диапазоне - это использование метода nextInt() в классе Random.
Метод nextInt() генерирует целочисленное значение в диапазоне [0, n).
public static int randomNumberGenerator(int min, int max) {
Random r = new Random();
int randomNum = r.nextInt(max - min) + min;
return randomNum;
}
Этот метод принимает параметры min и max и возвращает случайное целое число в указанном диапазоне. В этом методе nextInt() генерирует случайное число от 0 до (max - min), а затем мы добавляем значение min, чтобы получить окончательное случайное число.
Вот код, который использует метод randomNumberGenerator() для генерации двух случайных чисел; первое должно быть в диапазоне от 500 до 2000, а второе - в диапазоне от 500 до 501.
int randomNum1 = randomNumberGenerator(500, 2000);
int randomNum2 = randomNumberGenerator(500, 501);
Для выполнения этого метода выполните следующие команды в терминале:
$ cd project
$ touch RandomNumbers.java
// вставьте код
$ javac RandomNumbers.java
$ java RandomNumbers
Использование метода ints() класса Random
Мы также можем использовать метод ints() класса Random для генерации потока случайных целых чисел в заданном диапазоне.
Вот код для генерации потока:
Random r = new Random();
IntStream stream = r.ints(5, 100, 120);
Здесь метод ints() принимает три параметра: первый - параметр count, который определяет, сколько целых чисел мы хотим сгенерировать, и параметр bound, который определяет диапазон. Например, в нашем коде параметр bound находится в диапазоне от 100 до 120. Это параметр с включительным минимумом (100) и исключительным максимумом (120).
После создания этого потока мы можем его использовать с помощью forEach() или собрать в коллекцию, такой как List или массив.
Вот код, который использует метод ints() для генерации пяти случайных целых чисел между 150 и 2000:
int min = 150; // определение минимального диапазона
int max = 2000; // определение максимального диапазона
Random r = new Random();
IntStream stream = r.ints(5, min, max); // генерация случайного потока
int randomNum = stream.findFirst().getAsInt(); // получение первого значения из потока
System.out.print("The random number is: " + randomNum); // вывод случайного числа
Для выполнения этого метода выполните следующие команды в терминале:
$ cd project
$ touch RandomNumbers.java
// вставьте код
$ javac RandomNumbers.java
$ java RandomNumbers
Резюме
Генерация случайных чисел в заданном диапазоне в Java является важной задачей для многих приложений. В этом лабораторном задании вы узнали несколько методов генерации случайных чисел в диапазоне, таких как использование Math.random(), Random.nextInt() и Random.ints(). Каждый метод имеет свои достоинства и недостатки, и вы должны выбрать тот, который лучше подходит для ваших потребностей.



