Spec-Zone.ru › OpenJDK 24

Интерфейс RandomGenerator

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

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

В случае с 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
END_OF_DOCUMENT_MARKER

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

Модификатор и тип Интерфейс Описание
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 значений, каждое из которых находится между указанной левой границей и указанной правой границей. Левая граница включается, как указано в isLeftIncluded; аналогично, правая граница включается как указано в 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 - включение левой границы
isRightIncluded - включение правой границы
Возвращает:
поток псевдослучайных 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)
Возвращает поток, генерирующий заданное количество псевдослучайных целых значений.
Требования к реализации:
Базовая реализация генерирует последовательный поток, многократно вызывая nextInt().
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток псевдослучайных целых значений
Исключения:
IllegalArgumentException - если streamSize меньше нуля

ints

default IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, генерирующий заданное количество псевдослучайных целых значений, каждое из которых находится в заданном диапазоне (включительно для начала, исключающий конец).
Требования к реализации:
Базовая реализация генерирует последовательный поток, многократно вызывая nextInt(randomNumberOrigin, randomNumberBound).
Параметры:
streamSize - количество значений для генерации
randomNumberOrigin - минимальное значение (включительно)
randomNumberBound - максимальное значение (исключающее)
Возвращает:
поток псевдослучайных целых значений, каждое из которых находится в заданном диапазоне (включительно для начала, исключающий конец)
Исключения:
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)
Возвращает поток, генерирующий заданное количество псевдослучайных целых значений типа long.
Требования к реализации:
Базовая реализация генерирует последовательный поток, многократно вызывая nextLong().
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток псевдослучайных целых значений типа long
Исключения:
IllegalArgumentException - если streamSize меньше нуля

longs

default LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, генерирующий заданное количество псевдослучайных целых значений типа 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 значение, псевдослучайно выбранное из экспоненциального распределения

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/random/RandomGenerator.html

Spec-Zone.ru

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