Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Генерация случайных чисел в Java: Практическое руководство с Random и Math.random

В этом кратком уроке вы узнаете, как генерировать случайные значения в Java, используя два наиболее распространенных подхода: java.util.Random и Math.random(). Оба являются частью JDK, но каждый служит немного разным случаям использования и предлагает уникальные функции.

Генерация случайных чисел с java.util.Random

Класс Random может производить значения int, long, float, double и boolean. Создайте его один раз и повторно используйте тот же объект, чтобы избежать накладных расходов на производительность.

Ниже приведен полный пример, выводящий десять случайных целых чисел от 0 до 99 (включительно). Если вам нужна верхняя граница включительно, добавьте единицу к аргументу.

import java.util.Random;
public class RandomNumbers {
    public static void main(String[] args) {
        Random rng = new Random();
        for (int i = 0; i < 10; i++) {
            int randomNumber = rng.nextInt(100); // 0-99
            System.out.println("Random No: " + randomNumber);
        }
    }
}

Типичный вывод:

Random No: 17
Random No: 57
Random No: 73
Random No: 48
Random No: 68
Random No: 86
Random No: 34
Random No: 97
Random No: 73
Random No: 18

Поскольку Random потокобезопасен для большинства использований, вы можете делить один экземпляр между несколькими потоками при необходимости. Для воспроизводимых последовательностей передайте seed: new Random(42).

Генерация случайных чисел с Math.random()

Когда вам нужен только быстрый double в диапазоне [0.0, 1.0), Math.random() удобен. Он внутренне делегирует одному экземпляру Random, поэтому он эффективен для небольших нагрузок.

Пример: генерация десяти значений double.

public class DemoRandom {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(Math.random());
        }
    }
}

Типичный вывод:

0.46518450373334297
0.14859851177803485
0.5628391820492477
0.6323378498048606
0.1740198445692248
0.9140544122258946
0.9167350036262347
0.49251219841030147
0.7426056725722353

Для генерации целых чисел или double в другом диапазоне комбинируйте Math.random() с арифметикой. Например, чтобы получить случайное int от 1 до 10 включительно: (int)(Math.random() * 10) + 1.

Ключевые выводы

java

  1. Развертывание Java EE приложений на Microsoft Azure: пошаговое руководство
  2. Интерфейс List в Java: обзор, реализации и ключевые методы
  3. Освоение алгоритмов Java Collections: сортировка, перемешивание и многое другое
  4. Создание массива объектов в Java: пошаговое руководство
  5. Метод String.length() в Java: как получить длину строки (пример)
  6. Освоение String.compareTo() в Java: синтаксис, сценарии использования и примеры
  7. Чтение файлов в Java с BufferedReader — Практическое руководство с примерами
  8. Конвертация char в String в Java — практические примеры и лучшие практики
  9. Реверс строки в Java с использованием рекурсии — пошаговое руководство
  10. Java 8 Streams: декларативная обработка данных