Генерация случайных чисел в Java: в диапазоне от 0 до 100
Быстрый ответ
Для генерации случайного числа в диапазоне от min
до max
в Java примените метод ThreadLocalRandom.current().nextInt(min, max + 1)
. В качестве примера, если min = 1
и max = 50
, код будет выглядеть так:
int randomNum = ThreadLocalRandom.current().nextInt(1, 51);
System.out.println(randomNum); // Выводит случайное число в диапазоне от 1 до 50
Повышенная производительность с ThreadLocalRandom
Если ваша работа связана с многопоточными приложениями, больше подойдет класс ThreadLocalRandom
вместо Random
, так как он обеспечивает более высокую производительность и снижает конкуренцию между потоками.
Генерация чисел в заданном диапазоне
Чтобы получить случайное число от 0
до 100
, вызовите r.nextInt(101)
. Если ваш диапазон начинается от low
и заканчивается high
, используйте формулу r.nextInt(high – low) + low
. Обратите внимание, верхняя граница high
в методе nextInt()
не включена.
Регулирование диапазонов для включения границ
Для того чтобы верхний и нижний пределы были включены, примените следующую формулу к ThreadLocalRandom
— nextInt(max – min + 1) + min
. При генерации чисел типа double
с использованием Math.random()
, после преобразования в int
, сделайте корректировку диапазона вот так:
int min = 5, max = 15;
int randomNum = min + (int)(Math.random() * ((max – min) + 1));
Генерация множества случайных чисел
Если вам требуется сгенерировать серию случайных чисел, просто используйте цикл, в который встроите логику генерации случайного числа.
Контроль над кодом с помощью методов
Вынесение генератора случайных чисел в отдельный метод способствует улучшению читабельности кода и его дальнейшего повторного использования.
public int generateRandomInRange(int min, int max){
return ThreadLocalRandom.current().nextInt(min, max + 1);
}
Визуализация
Этот процесс можно аналогично представить как стрельбу по мишени (🎯), где нужно попасть в зону между зелёным (🟢) и красным (🔴) кругами.
int min = 🟢; // Укажите минимальное значение
int max = 🔴; // Укажите максимальное значение
int randomNum = (int) (Math.random() * (max – min + 1)) + min;
// Эта формула обеспечивает попадание в диапазон между 🟢 и 🔴
Дальше случайного: SecureRandom
Для приложений, требующих повышенной безопасности, следует использовать класс SecureRandom
, предоставляющий более надёжный генератор случайных чисел.
Ошибки в диапазонах: сохраняйте свои цели
Особенно важно следить за правильностью использования nextInt()
и типами данных при генерации случайных чисел, чтобы избежать выхода за пределы указанных границ.
Отрицательные диапазоны: учитывайте свою ориентацию
Будьте особо осторожны при работе с отрицательными диапазонами. Используйте абсолютные значения и ясно определяйте границы, чтобы не получить нежелательных отрицательных результатов.
Использование потоков: на пути к функциональному программированию
Со введением Java 8 для генерации случайных чисел стало возможно использовать потоки (streams), что позволяет легко интегрировать элементы функционального программирования и более сложные операции, такие как создание потока случайных чисел или фильтрация.
Полезные материалы
- Random (Java Platform SE 8)
- How do I generate random integers within a specific range in Java? – Stack Overflow
- Tutorial | DigitalOcean
- Класс Java.util.Random – Tutorialspoint
- Как сгенерировать случайное число от 1 до 10 – Пример на Java | Java67
- Educative Answers – Достоверные ответы на вопросы разработчиков