Генерация случайных чисел в Java: в диапазоне от 0 до 100

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для генерации случайного числа в диапазоне от min до max в Java примените метод ThreadLocalRandom.current().nextInt(min, max + 1). В качестве примера, если min = 1 и max = 50, код будет выглядеть так:

Java
Скопировать код
int randomNum = ThreadLocalRandom.current().nextInt(1, 51);
System.out.println(randomNum); // Выводит случайное число в диапазоне от 1 до 50
Кинга Идем в IT: пошаговый план для смены профессии

Повышенная производительность с ThreadLocalRandom

Если ваша работа связана с многопоточными приложениями, больше подойдет класс ThreadLocalRandom вместо Random, так как он обеспечивает более высокую производительность и снижает конкуренцию между потоками.

Генерация чисел в заданном диапазоне

Чтобы получить случайное число от 0 до 100, вызовите r.nextInt(101). Если ваш диапазон начинается от low и заканчивается high, используйте формулу r.nextInt(high – low) + low. Обратите внимание, верхняя граница high в методе nextInt() не включена.

Регулирование диапазонов для включения границ

Для того чтобы верхний и нижний пределы были включены, примените следующую формулу к ThreadLocalRandomnextInt(max – min + 1) + min. При генерации чисел типа double с использованием Math.random(), после преобразования в int, сделайте корректировку диапазона вот так:

Java
Скопировать код
int min = 5, max = 15;
int randomNum = min + (int)(Math.random() * ((max – min) + 1));

Генерация множества случайных чисел

Если вам требуется сгенерировать серию случайных чисел, просто используйте цикл, в который встроите логику генерации случайного числа.

Контроль над кодом с помощью методов

Вынесение генератора случайных чисел в отдельный метод способствует улучшению читабельности кода и его дальнейшего повторного использования.

Java
Скопировать код
public int generateRandomInRange(int min, int max){
    return ThreadLocalRandom.current().nextInt(min, max + 1);
}

Визуализация

Этот процесс можно аналогично представить как стрельбу по мишени (🎯), где нужно попасть в зону между зелёным (🟢) и красным (🔴) кругами.

Java
Скопировать код
int min = 🟢;  // Укажите минимальное значение
int max = 🔴;  // Укажите максимальное значение
int randomNum = (int) (Math.random() * (max – min + 1)) + min;
// Эта формула обеспечивает попадание в диапазон между 🟢 и 🔴

Дальше случайного: SecureRandom

Для приложений, требующих повышенной безопасности, следует использовать класс SecureRandom, предоставляющий более надёжный генератор случайных чисел.

Ошибки в диапазонах: сохраняйте свои цели

Особенно важно следить за правильностью использования nextInt() и типами данных при генерации случайных чисел, чтобы избежать выхода за пределы указанных границ.

Отрицательные диапазоны: учитывайте свою ориентацию

Будьте особо осторожны при работе с отрицательными диапазонами. Используйте абсолютные значения и ясно определяйте границы, чтобы не получить нежелательных отрицательных результатов.

Использование потоков: на пути к функциональному программированию

Со введением Java 8 для генерации случайных чисел стало возможно использовать потоки (streams), что позволяет легко интегрировать элементы функционального программирования и более сложные операции, такие как создание потока случайных чисел или фильтрация.

Полезные материалы

  1. Random (Java Platform SE 8)
  2. How do I generate random integers within a specific range in Java? – Stack Overflow
  3. Tutorial | DigitalOcean
  4. Класс Java.util.Random – Tutorialspoint
  5. Как сгенерировать случайное число от 1 до 10 – Пример на Java | Java67
  6. Educative Answers – Достоверные ответы на вопросы разработчиков