Spec-Zone.ru › OpenJDK 25

Интерфейс RandomGenerator

Все известные подинтерфейсы:
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
Все известные реализующие классы:
Random, SecureRandom, SplittableRandom, ThreadLocalRandom
public interface RandomGenerator
Интерфейс RandomGenerator предназначен для предоставления общего протокола объектам, генерирующим случайные или (чаще) псевдослучайные последовательности чисел (или логических значений). Такую последовательность можно получить, многократно вызывая метод, который возвращает одно псевдослучайно выбранное значение, либо вызывая метод, который возвращает поток псевдослучайно выбранных значений.

В идеале, если диапазон значений задан неявно или явно, каждое значение выбиралось бы независимо и равномерно из этого диапазона. На практике, возможно, придется довольствоваться некоторым приближением к независимости и равномерности.

Для значений int, long и boolean, если диапазон не задан явно, он включает все возможные значения данного типа. Для значений float и double сначала всегда равномерно выбирается значение из множества 2w значений от 0.0 (включительно) до 1.0 (не включая), где w — это Float.PRECISION для значений float и Double.PRECISION для значений double, так что соседние значения отличаются на 2−w (обратите внимание, что это множество является подмножеством множества всех представимых значений с плавающей точкой от 0.0 (включительно) до 1.0 (не включая)); затем, если диапазон задан явно, выбранное число программно масштабируется и смещается так, чтобы казалось, что оно было выбрано приблизительно равномерно из этого явно заданного диапазона.

Каждый метод, возвращающий поток, создает поток значений, каждое из которых выбирается тем же способом, что и для метода, возвращающего одно псевдослучайно выбранное значение. Например, если r реализует RandomGenerator, то вызов метода r.ints(100) возвращает поток из 100 значений int. Это не обязательно те же самые значения, которые были бы возвращены, если бы вместо этого r.nextInt() был вызван 100 раз; гарантируется лишь то, что каждое значение в потоке выбирается аналогичным псевдослучайным образом из того же диапазона.

Предполагается, что каждый объект, реализующий интерфейс RandomGenerator с использованием псевдослучайного алгоритма, содержит конечное количество состояния. Использование такого объекта для генерации псевдослучайно выбранного значения изменяет его состояние: вычисляется новое состояние как функция текущего состояния без обращения к какой-либо информации, кроме текущего состояния. Количество различных возможных состояний такого объекта называется его периодом. (Некоторые реализации интерфейса RandomGenerator могут быть действительно случайными, а не псевдослучайными, например, если выбранные значения определяются на основе статистического поведения физического объекта. У таких реализаций нет фиксированного периода.)

Как правило, объекты, реализующие интерфейс RandomGenerator, не обязаны быть потокобезопасными. Для многопоточных приложений рекомендуется использовать либо ThreadLocalRandom, либо (предпочтительно) генераторы псевдослучайных чисел, реализующие интерфейс RandomGenerator.SplittableGenerator или RandomGenerator.JumpableGenerator.

Объекты, реализующие RandomGenerator, как правило, не являются криптографически стойкими. Для приложений, в которых важна безопасность, рассмотрите возможность использования SecureRandom для получения криптографически стойкого генератора псевдослучайных чисел. Однако обратите внимание, что SecureRandom реализует интерфейс RandomGenerator, поэтому экземпляры SecureRandom можно взаимозаменяемо использовать с другими типами генераторов псевдослучайных чисел в приложениях, которым не требуется безопасный генератор.

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

Начиная с версии:
17

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static interface  RandomGenerator.ArbitrarilyJumpableGenerator
Этот интерфейс предназначен для предоставления общего протокола объектам, генерирующим последовательности псевдослучайных значений и способным легко выполнять прыжок вперед на произвольное расстояние к удаленной точке цикла состояний.
static interface  RandomGenerator.JumpableGenerator
Этот интерфейс предназначен для предоставления общего протокола объектам, генерирующим псевдослучайные значения и способным легко выполнять прыжок вперед на умеренное расстояние (например, 264) к удаленной точке цикла состояний.
static interface  RandomGenerator.LeapableGenerator
Этот интерфейс предназначен для предоставления общего протокола объектам, генерирующим последовательности псевдослучайных значений и способным не только выполнять прыжок, но и делать скачок вперед на большое расстояние (например, 2128) к очень удаленной точке цикла состояний.
static interface  RandomGenerator.SplittableGenerator
Этот интерфейс предназначен для предоставления общего протокола объектам, генерирующим последовательности псевдослучайных значений и способным разделяться на два объекта (исходный и новый), каждый из которых следует тому же протоколу (и поэтому может рекурсивно разделяться неограниченное количество раз).
static interface  RandomGenerator.StreamableGenerator
Интерфейс RandomGenerator.StreamableGenerator дополняет интерфейс RandomGenerator, предоставляя методы, возвращающие потоки объектов RandomGenerator.

Краткое описание методов

Модификатор и тип Метод Описание
default DoubleStream doubles()
Возвращает практически неограниченный поток псевдослучайно выбранных значений double.
default DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанным началом (включительно) и указанной верхней границей (не включая).
default DoubleStream doubles(long streamSize)
Возвращает поток, содержащий указанное количество streamSize псевдослучайно выбранных значений double.
default DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Возвращает поток, содержащий указанное количество streamSize псевдослучайно выбранных значений double, каждое из которых находится между указанным началом (включительно) и указанной верхней границей (не включая).
default DoubleStream equiDoubles(double left, double right, boolean isLeftIncluded, boolean isRightIncluded)
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанной границей left и указанной границей right.
static RandomGenerator getDefault()
Возвращает RandomGenerator, удовлетворяющий минимальному требованию: используемый им алгоритм имеет не менее 64 бит состояния.
default IntStream ints()
Возвращает практически неограниченный поток псевдослучайно выбранных значений int.
default IntStream ints(int randomNumberOrigin, int randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений int, каждое из которых находится между указанным началом (включительно) и указанной верхней границей (не включая).
default IntStream ints(long streamSize)
Возвращает поток, содержащий указанное количество streamSize псевдослучайно выбранных значений int.
default IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, содержащий указанное количество streamSize псевдослучайно выбранных значений int, каждое из которых находится между указанным началом (включительно) и указанной верхней границей (не включая).
default boolean isDeprecated()
Возвращает true, если реализация RandomGenerator (алгоритм) помечена как устаревшая.
default LongStream longs()
Возвращает практически неограниченный поток псевдослучайно выбранных значений long.
default LongStream longs(long streamSize)
Возвращает поток, содержащий указанное количество streamSize псевдослучайно выбранных значений long.
default LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений long, каждое из которых находится между указанным началом (включительно) и указанной верхней границей (не включая).
default LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, содержащий указанное количество streamSize псевдослучайно выбранных значений long, каждое из которых находится между указанным началом (включительно) и указанной верхней границей (не включая).
default boolean nextBoolean()
Возвращает псевдослучайно выбранное значение boolean.
default void nextBytes(byte[] bytes)
Заполняет предоставленный пользователем массив байтов сгенерированными байтовыми значениями, равномерно псевдослучайно выбранными из диапазона от -128 (включительно) до 127 (включительно).
default double nextDouble()
Возвращает псевдослучайное значение double от нуля (включительно) до единицы (не включая).
default double nextDouble(double bound)
Возвращает псевдослучайно выбранное значение double от нуля (включительно) до указанной верхней границы (не включая).
default double nextDouble(double origin, double bound)
Возвращает псевдослучайно выбранное значение double между указанным началом (включительно) и указанной верхней границей (не включая).
default double nextExponential()
Возвращает неотрицательное значение double, псевдослучайно выбранное из экспоненциального распределения со средним значением 1.
default float nextFloat()
Возвращает псевдослучайное значение float от нуля (включительно) до единицы (не включая).
default float nextFloat(float bound)
Возвращает псевдослучайно выбранное значение float от нуля (включительно) до указанной верхней границы (не включая).
default float nextFloat(float origin, float bound)
Возвращает псевдослучайно выбранное значение float между указанным началом (включительно) и указанной верхней границей (не включая).
default double nextGaussian()
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением 0 и стандартным отклонением 1.
default double nextGaussian(double mean, double stddev)
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением и стандартным отклонением, заданными аргументами.
default int nextInt()
Возвращает псевдослучайно выбранное значение int.
default int nextInt(int bound)
Возвращает псевдослучайно выбранное значение int от нуля (включительно) до указанной верхней границы (не включая).
default int nextInt(int origin, int bound)
Возвращает псевдослучайно выбранное значение int между указанным началом (включительно) и указанной верхней границей (не включая).
long nextLong()
Возвращает псевдослучайно выбранное значение long.
default long nextLong(long bound)
Возвращает псевдослучайно выбранное значение long от нуля (включительно) до указанной верхней границы (не включая).
default long nextLong(long origin, long bound)
Возвращает псевдослучайно выбранное значение long между указанным началом (включительно) и указанной верхней границей (не включая).
static RandomGenerator of(String name)
Возвращает экземпляр RandomGenerator, использующий алгоритм name.

Подробное описание методов

of

static RandomGenerator of(String name)
Возвращает экземпляр RandomGenerator, использующий name алгоритм.
Параметры:
name — название алгоритма генератора случайных чисел
Возвращает:
экземпляр RandomGenerator
Выбрасывает:
NullPointerException — если имя равно null
IllegalArgumentException — если алгоритм с указанным именем не найден

getDefault

static RandomGenerator getDefault()
Возвращает RandomGenerator, удовлетворяющий минимальному требованию: его алгоритм должен иметь не менее 64 бит состояния.
Требования к реализации:
Поскольку алгоритмы со временем совершенствуются, нет гарантии, что этот метод будет возвращать один и тот же алгоритм.

Реализация по умолчанию выбирает L32X64MixRandom.

Возвращает:
RandomGenerator

isDeprecated

default boolean isDeprecated()
Возвращает true, если реализация RandomGenerator (алгоритм) помечена как устаревшая.
Требования к реализации:
Реализация по умолчанию проверяет наличие аннотации @Deprecated.
Примечание по реализации:
Алгоритмы генерации случайных чисел со временем развиваются: появляются новые алгоритмы, а старые теряют актуальность. Если более старый алгоритм признаётся непригодным для дальнейшего использования, он помечается как устаревший, что указывает на возможность его удаления в будущем.
Возвращает:
true, если реализация RandomGenerator (алгоритм) помечена как устаревшая

doubles

default DoubleStream doubles()
Возвращает практически неограниченный поток псевдослучайно выбранных значений double.
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextDouble().
Примечание по реализации:
Допускается реализовать этот метод способом, эквивалентным вызову doubles (Long.MAX_VALUE).
Возвращает:
поток псевдослучайно выбранных значений double

doubles

default DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно).
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextDouble(randomNumberOrigin, randomNumberBound).
Примечание по реализации:
Допускается реализовать этот метод способом, эквивалентным вызову doubles (Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin — наименьшее возможное значение
randomNumberBound — верхняя граница (не включительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайно выбранных значений double, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно)
Выбрасывает:
IllegalArgumentException — если randomNumberOrigin не является конечным, или randomNumberBound не является конечным, или randomNumberOrigin больше или равно randomNumberBound

doubles

default DoubleStream doubles(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайно выбранных значений double.
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextDouble().
Параметры:
streamSize — количество генерируемых значений
Возвращает:
поток псевдослучайно выбранных значений double
Выбрасывает:
IllegalArgumentException — если streamSize меньше нуля

doubles

default DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайно выбранных значений double, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно).
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextDouble(randomNumberOrigin, randomNumberBound).
Параметры:
streamSize — количество генерируемых значений
randomNumberOrigin — наименьшее возможное значение
randomNumberBound — верхняя граница (не включительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайно выбранных значений double, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно)
Выбрасывает:
IllegalArgumentException — если streamSize меньше нуля, или randomNumberOrigin не является конечным, или randomNumberBound не является конечным, или randomNumberOrigin больше или равно randomNumberBound

equiDoubles

default DoubleStream equiDoubles(double left, double right, boolean isLeftIncluded, boolean isRightIncluded)
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанной left границей и указанной right границей. Включение left границы определяется значением isLeftIncluded; аналогично, включение right границы определяется значением isRightIncluded.

Поток потенциально генерирует все кратные k δ (k — целое число), лежащие в интервале, заданном параметрами, где δ > 0 — наименьшее число, для которого все эти кратные являются точными значениями double. Поэтому все они равноотстоят друг от друга. Равномерность распределения значений double, генерируемых потоком, зависит от качества используемого nextLong(long).

Требования к реализации:
Реализация по умолчанию сначала определяет указанное выше значение δ. Затем она вычисляет наименьшее целое число kl, для которого kl δ находится внутри заданного интервала, и наименьшее целое число n > 0, для которого (kl + n) δ находится вне интервала. Наконец, метод возвращает поток, генерирующий значения double по формуле (kl + nextLong(n)) δ. Поток никогда не генерирует -0.0, однако может генерировать 0.0, если указанный интервал содержит 0.
Параметры:
left — левая граница
right — правая граница
isLeftIncluded — указывает, включена ли left граница
isRightIncluded — указывает, включена ли right граница
Возвращает:
поток псевдослучайно выбранных значений double, каждое из которых находится между left и right, как описано выше.
Выбрасывает:
IllegalArgumentException — если left не является конечным, или right не является конечным, или указанный интервал пуст.
С версии:
22

ints

default IntStream ints()
Возвращает практически неограниченный поток псевдослучайно выбранных значений int.
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextInt().
Примечание по реализации:
Допускается реализовать этот метод способом, эквивалентным вызову ints (Long.MAX_VALUE).
Возвращает:
поток псевдослучайно выбранных значений int

ints

default IntStream ints(int randomNumberOrigin, int randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений int, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно).
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextInt(randomNumberOrigin, randomNumberBound).
Примечание по реализации:
Допускается реализовать этот метод способом, эквивалентным вызову ints (Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin — наименьшее возможное значение
randomNumberBound — верхняя граница (не включительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайно выбранных значений int, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно)
Выбрасывает:
IllegalArgumentException — если randomNumberOrigin больше или равно randomNumberBound

ints

default IntStream ints(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайно выбранных значений int.
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextInt().
Параметры:
streamSize — количество генерируемых значений
Возвращает:
поток псевдослучайно выбранных значений int
Выбрасывает:
IllegalArgumentException — если streamSize меньше нуля

ints

default IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайно выбранных значений int, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно).
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextInt(randomNumberOrigin, randomNumberBound).
Параметры:
streamSize — количество генерируемых значений
randomNumberOrigin — наименьшее возможное значение
randomNumberBound — верхняя граница (не включительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайно выбранных значений int, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно)
Выбрасывает:
IllegalArgumentException — если streamSize меньше нуля или randomNumberOrigin больше или равно randomNumberBound

longs

default LongStream longs()
Возвращает практически неограниченный поток псевдослучайно выбранных значений long.
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextLong().
Примечание по реализации:
Допускается реализовать этот метод способом, эквивалентным вызову longs (Long.MAX_VALUE).
Возвращает:
поток псевдослучайно выбранных значений long

longs

default LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений long, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно).
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextLong(randomNumberOrigin, randomNumberBound).
Примечание по реализации:
Допускается реализовать этот метод способом, эквивалентным вызову longs (Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin — наименьшее возможное значение
randomNumberBound — верхняя граница (не включительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайно выбранных значений long, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно)
Выбрасывает:
IllegalArgumentException — если randomNumberOrigin больше или равно randomNumberBound

longs

default LongStream longs(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайно выбранных значений long.
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextLong().
Параметры:
streamSize — количество генерируемых значений
Возвращает:
поток псевдослучайно выбранных значений long
Выбрасывает:
IllegalArgumentException — если streamSize меньше нуля

longs

default LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайно выбранных значений long, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно).
Требования к реализации:
Реализация по умолчанию создаёт последовательный поток, многократно вызывающий nextLong(randomNumberOrigin, randomNumberBound).
Параметры:
streamSize — количество генерируемых значений
randomNumberOrigin — наименьшее возможное значение
randomNumberBound — верхняя граница (не включительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайно выбранных значений long, каждое из которых находится между указанным начальным значением (включительно) и указанной верхней границей (не включительно)
Выбрасывает:
IllegalArgumentException — если streamSize меньше нуля или randomNumberOrigin больше или равно randomNumberBound

nextBoolean

default boolean nextBoolean()
Возвращает псевдослучайно выбранное значение boolean.

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

Требования к реализации:
Реализация по умолчанию формирует результат на основе бита знака числа, сгенерированного вызовом nextInt().
Возвращает:
псевдослучайно выбранное значение boolean

nextBytes

default void nextBytes(byte[] bytes)
Заполняет предоставленный пользователем байтовый массив байтами, равномерно псевдослучайно выбранными из диапазона от -128 (включительно) до 127 (включительно).
Требования к реализации:
Реализация по умолчанию получает результаты посредством многократных вызовов nextLong().
Примечание по реализации:
Алгоритм заполнения байтового массива;
          void nextBytes(byte[] bytes) {
              int i = 0;
              int len = bytes.length;
              for (int words = len >> 3; words--> 0; ) {
                  long rnd = nextLong();
                  for (int n = 8; n--> 0; rnd >>>= Byte.SIZE)
                      bytes[i++] = (byte)rnd;
              }
              if (i < len)
                  for (long rnd = nextLong(); i < len; rnd >>>= Byte.SIZE)
                      bytes[i++] = (byte)rnd;
          }
Параметры:
bytes — байтовый массив для заполнения псевдослучайными байтами
Выбрасывает:
NullPointerException — если bytes равен null

nextFloat

default float nextFloat()
Возвращает псевдослучайное значение float в диапазоне от нуля (включительно) до единицы (не включительно).
Требования к реализации:
Реализация по умолчанию использует Float.PRECISION старших битов из результата вызова nextInt().
Возвращает:
псевдослучайное значение float в диапазоне от нуля (включительно) до единицы (не включительно)

nextFloat

default float nextFloat(float bound)
Возвращает псевдослучайно выбранное значение float в диапазоне от нуля (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет, что bound является положительным конечным числом типа float. Затем вызывает nextFloat() и масштабирует результат так, чтобы итоговое значение находилось в диапазоне от 0.0f (включительно) до bound (не включительно).
Параметры:
bound — верхняя граница (не включительно) возвращаемого значения. Должна быть положительной и конечной
Возвращает:
псевдослучайно выбранное значение float в диапазоне от нуля (включительно) до указанной верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если bound не является одновременно положительным и конечным

nextFloat

default float nextFloat(float origin, float bound)
Возвращает псевдослучайно выбранное значение float в диапазоне от указанного начального значения (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет допустимость значений origin и bound, затем вызывает nextFloat(), масштабируя и смещая результат так, чтобы он находился между origin и bound (не включительно).
Параметры:
origin — наименьшее возвращаемое значение
bound — верхняя граница (не включительно)
Возвращает:
псевдослучайно выбранное значение float в диапазоне от начального значения (включительно) до верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если origin не является конечным, или bound не является конечным, или origin больше или равно bound

nextDouble

default double nextDouble()
Возвращает псевдослучайное значение double в диапазоне от нуля (включительно) до единицы (не включительно).
Требования к реализации:
Реализация по умолчанию использует Double.PRECISION старших битов из результата вызова nextLong().
Возвращает:
псевдослучайное значение double в диапазоне от нуля (включительно) до единицы (не включительно)

nextDouble

default double nextDouble(double bound)
Возвращает псевдослучайно выбранное значение double в диапазоне от нуля (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет, что bound является положительным конечным числом типа double. Затем вызывает nextDouble() и масштабирует результат так, чтобы итоговое значение находилось в диапазоне от 0.0 (включительно) до bound (не включительно).
Параметры:
bound — верхняя граница (не включительно) возвращаемого значения. Должна быть положительной и конечной
Возвращает:
псевдослучайно выбранное значение double в диапазоне от нуля (включительно) до указанной верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если bound не является одновременно положительным и конечным

nextDouble

default double nextDouble(double origin, double bound)
Возвращает псевдослучайно выбранное значение double в диапазоне от указанного начального значения (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет допустимость значений origin и bound, затем вызывает nextDouble(), масштабируя и смещая результат так, чтобы он находился между origin и bound (не включительно).
Параметры:
origin — наименьшее возвращаемое значение
bound — верхняя граница (не включительно) возвращаемого значения
Возвращает:
псевдослучайно выбранное значение double в диапазоне от начального значения (включительно) до верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если origin не является конечным, или bound не является конечным, или origin больше или равно bound

nextInt

default int nextInt()
Возвращает псевдослучайно выбранное значение int.
Требования к реализации:
Реализация по умолчанию использует 32 старших бита из результата вызова nextLong().
Возвращает:
псевдослучайно выбранное значение int

nextInt

default int nextInt(int bound)
Возвращает псевдослучайно выбранное значение int в диапазоне от нуля (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет, что bound положительно. Затем она один или несколько раз вызывает nextInt(), чтобы обеспечить равномерное распределение в диапазоне от 0 (включительно) до bound (не включительно). Предполагается, что распределение значений nextInt() равномерно.
Параметры:
bound — верхняя граница (не включительно) возвращаемого значения. Должна быть положительной.
Возвращает:
псевдослучайно выбранное значение int в диапазоне от нуля (включительно) до указанной верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если bound не является положительным

nextInt

default int nextInt(int origin, int bound)
Возвращает псевдослучайно выбранное значение int в диапазоне от указанного начального значения (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет, что origin меньше bound. Затем она один или несколько раз вызывает nextInt(), чтобы обеспечить равномерное распределение в диапазоне от origin (включительно) до bound (не включительно). Предполагается, что распределение значений nextInt() равномерно.
Параметры:
origin — наименьшее возвращаемое значение
bound — верхняя граница (не включительно) возвращаемого значения
Возвращает:
псевдослучайно выбранное значение int в диапазоне от начального значения (включительно) до верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если origin больше или равно bound

nextLong

long nextLong()
Возвращает псевдослучайно выбранное значение long.
Возвращает:
псевдослучайно выбранное значение long

nextLong

default long nextLong(long bound)
Возвращает псевдослучайно выбранное значение long в диапазоне от нуля (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет, что bound положительно. Затем она один или несколько раз вызывает nextLong(), чтобы обеспечить равномерное распределение в диапазоне от 0 (включительно) до bound (не включительно). Предполагается, что распределение значений nextLong() равномерно.
Параметры:
bound — верхняя граница (не включительно) возвращаемого значения. Должна быть положительной.
Возвращает:
псевдослучайно выбранное значение long в диапазоне от нуля (включительно) до указанной верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если bound не является положительным

nextLong

default long nextLong(long origin, long bound)
Возвращает псевдослучайно выбранное значение long в диапазоне от указанного начального значения (включительно) до указанной верхней границы (не включительно).
Требования к реализации:
Реализация по умолчанию проверяет, что origin меньше bound. Затем она один или несколько раз вызывает nextLong(), чтобы обеспечить равномерное распределение в диапазоне от origin (включительно) до bound (не включительно). Предполагается, что распределение значений nextLong() равномерно.
Параметры:
origin — наименьшее возвращаемое значение
bound — верхняя граница (не включительно) возвращаемого значения
Возвращает:
псевдослучайно выбранное значение long в диапазоне от начального значения (включительно) до верхней границы (не включительно)
Выбрасывает:
IllegalArgumentException — если origin больше или равно bound

nextGaussian

default double nextGaussian()
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением 0 и стандартным отклонением 1.
Требования к реализации:
Реализация по умолчанию использует быстрый модифицированный алгоритм зиггурат Макфарланда (в основном табличный; редкие случаи обрабатываются вычислениями и выборкой с отклонением). Также применяется метод алиасов Уокера для выборки из дискретного распределения.
Возвращает:
значение double, псевдослучайно выбранное из гауссовского распределения

nextGaussian

default double nextGaussian(double mean, double stddev)
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением и стандартным отклонением, заданными аргументами.
Требования к реализации:
Реализация по умолчанию использует быстрый модифицированный алгоритм зиггура Макфарланда (в основном основанный на таблицах; редкие случаи обрабатываются с помощью вычислений и выборки с отбраковкой). Также используется метод алиасов Уокера для выборки из дискретного распределения.
Параметры:
mean — среднее значение гауссовского распределения, из которого производится выборка
stddev — стандартное отклонение (квадратный корень из дисперсии) гауссовского распределения, из которого производится выборка
Возвращает:
значение double, псевдослучайно выбранное из указанного гауссовского распределения
Вызывает исключение:
IllegalArgumentException — если stddev отрицательно

nextExponential

default double nextExponential()
Возвращает неотрицательное значение double, псевдослучайно выбранное из экспоненциального распределения со средним значением 1.
Требования к реализации:
Реализация по умолчанию использует быстрый модифицированный алгоритм зиггура Макфарланда (в основном основанный на таблицах; редкие случаи обрабатываются с помощью вычислений и выборки с отбраковкой). Также используется метод алиасов Уокера для выборки из дискретного распределения.
Возвращает:
неотрицательное значение double, псевдослучайно выбранное из экспоненциального распределения

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, включая общие сведения, определения терминов, способы обхода проблем и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/random/RandomGenerator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API