Интерфейс 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
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
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 значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default DoubleStream |
doubles |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений. |
default DoubleStream |
doubles |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default DoubleStream |
equiDoubles |
Возвращает эффективно неограниченный поток псевдослучайных double значений, где каждое значение находится между указанным left пределом и указанным right пределом. |
static RandomGenerator |
getDefault() |
Возвращает RandomGenerator, удовлетворяющий минимальному требованию, состоящему в наличии алгоритма, биты состояния которого больше или равны 64. |
default IntStream |
ints() |
Возвращает эффективно неограниченный поток псевдослучайных int значений. |
default IntStream |
ints |
Возвращает эффективно неограниченный поток псевдослучайных int значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default IntStream |
ints |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных int значений. |
default IntStream |
ints |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных int значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default boolean |
isDeprecated() |
Возвращает true, если реализация RandomGenerator (алгоритм) помечена для устаревания. |
default LongStream |
longs() |
Возвращает эффективно неограниченный поток псевдослучайных long значений. |
default LongStream |
longs |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных long значений. |
default LongStream |
longs |
Возвращает эффективно неограниченный поток псевдослучайных long значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default LongStream |
longs |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных long значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default boolean |
nextBoolean() |
Возвращает псевдослучайное boolean значение. |
default void |
nextBytes |
Заполняет предоставленный пользователем массив байтов сгенерированными байтовыми значениями, псевдослучайно выбранными равномерно из диапазона значений от -128 (включительно) до 127 (включительно). |
default double |
nextDouble() |
Возвращает псевдослучайное double значение между нулём (включительно) и единицей (исключительно). |
default double |
nextDouble |
Возвращает псевдослучайное double значение между нулём (включительно) и указанным пределом (исключительно). |
default double |
nextDouble |
Возвращает псевдослучайное double значение между указанным началом (включительно) и указанным пределом (исключительно). |
default double |
nextExponential() |
Возвращает неотрицательное double значение, псевдослучайно выбранное из экспоненциального распределения, среднее значение которого равно 1. |
default float |
nextFloat() |
Возвращает псевдослучайное float значение между нулём (включительно) и единицей (исключительно). |
default float |
nextFloat |
Возвращает псевдослучайное float значение между нулём (включительно) и указанным пределом (исключительно). |
default float |
nextFloat |
Возвращает псевдослучайное float значение между указанным началом (включительно) и указанным пределом (исключительно). |
default double |
nextGaussian() |
Возвращает double значение, псевдослучайно выбранное из гауссового (нормального) распределения, среднее значение которого равно 0, а стандартное отклонение — 1. |
default double |
nextGaussian |
Возвращает double значение, псевдослучайно выбранное из гауссового (нормального) распределения со средним значением и стандартным отклонением, заданными аргументами. |
default int |
nextInt() |
Возвращает псевдослучайное int значение. |
default int |
nextInt |
Возвращает псевдослучайное int значение между нулём (включительно) и указанным пределом (исключительно). |
default int |
nextInt |
Возвращает псевдослучайное int значение между указанным началом (включительно) и указанным пределом (исключительно). |
long |
nextLong() |
Возвращает псевдослучайное long значение. |
default long |
nextLong |
Возвращает псевдослучайное long значение между нулём (включительно) и указанным пределом (исключительно). |
default long |
nextLong |
Возвращает псевдослучайное long значение между указанным началом (включительно) и указанным пределом (исключительно). |
static RandomGenerator |
of |
Подробное описание методов
of
static RandomGenerator of(String name)
- Параметры:
-
name- Название алгоритма генератора случайных чисел алгоритма - Возвращает:
- Экземпляр
RandomGenerator - Исключения:
-
NullPointerException- если имя null -
IllegalArgumentException- если алгоритм с заданным именем не найден
getDefault
static RandomGenerator getDefault()
RandomGenerator, удовлетворяющий минимальному требованию наличия алгоритма с битами состояния, не меньшими 64.- Требования к реализации:
- Поскольку алгоритмы улучшаются со временем, нет гарантии, что этот метод будет возвращать тот же алгоритм в будущем.
По умолчанию выбирается L32X64MixRandom.
- Возвращает:
RandomGenerator
isDeprecated
default boolean isDeprecated()
- Требования к реализации:
- Реализация по умолчанию проверяет аннотацию @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()
- Требования к реализации:
- Базовая реализация генерирует последовательный поток, многократно вызывая
nextLong(). - Замечание по реализации:
- Разрешается реализовать этот метод способом, эквивалентным
longs(Long.MAX_VALUE). - Возвращает:
- поток псевдослучайных целых чисел типа long
longs
default LongStream longs(long randomNumberOrigin, long randomNumberBound)
- Требования к реализации:
- Базовая реализация генерирует последовательный поток, многократно вызывая
nextLong(randomNumberOrigin, randomNumberBound). - Замечание по реализации:
- Разрешается реализовать этот метод способом, эквивалентным
longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound). - Параметры:
-
randomNumberOrigin- минимальное значение (включительно) -
randomNumberBound- максимальное значение (исключающее) - Возвращает:
- поток псевдослучайных целых чисел типа long, значения в диапазоне от указанного начала (включительно) до указанного конца (исключительно)
- Исключения:
-
IllegalArgumentException- еслиrandomNumberOriginбольше или равноrandomNumberBound
longs
default LongStream longs(long streamSize)
- Требования к реализации:
- Базовая реализация генерирует последовательный поток, многократно вызывая
nextLong(). - Параметры:
-
streamSize- количество значений для генерации - Возвращает:
- поток псевдослучайных целых значений типа long
- Исключения:
-
IllegalArgumentException- еслиstreamSizeменьше нуля
longs
default LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
- Требования к реализации:
- Базовая реализация генерирует последовательный поток, многократно вызывая
nextLong(randomNumberOrigin, randomNumberBound). - Параметры:
-
streamSize- количество значений для генерации -
randomNumberOrigin- минимальное значение (включительно) -
randomNumberBound- максимальное значение (исключающее) - Возвращает:
- поток псевдослучайных целых значений типа long, каждое из которых находится в заданном диапазоне (включительно для начала, исключающий конец)
- Исключения:
-
IllegalArgumentException- еслиstreamSizeменьше нуля илиrandomNumberOriginбольше или равноrandomNumberBound
nextBoolean
default boolean nextBoolean()
Базовая реализация проверяет старший бит (бит знака) значения, полученного из nextInt(), так как в некоторых алгоритмах генерации псевдослучайных чисел старшие биты имеют лучшую статистическую качество, чем младшие.
- Требования к реализации:
- Базовая реализация возвращает результат, основанный на бите знака числа, сгенерированного
nextInt(). - Возвращает:
- псевдослучайное значение boolean
nextBytes
default void nextBytes(byte[] bytes)
- Требования к реализации:
- Базовая реализация генерирует результаты из повторных вызовов
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.PRECISIONстаршие биты из вызоваnextInt(). - Возвращает:
- псевдослучайное значение float от нуля (включительно) до единицы (исключительно)
nextFloat
default float nextFloat(float bound)
- Требования к реализации:
- Базовая реализация проверяет, что
boundявляется положительным конечным значением float. Затем вызываетnextFloat(), масштабируя результат так, чтобы конечный результат находился между0.0f(включительно) иbound(исключительно). - Параметры:
-
bound- верхний предел (исключительно) для возвращаемого значения. Должен быть положительным и конечным - Возвращает:
- псевдослучайное значение float между нулем (включительно) и пределом (исключительно)
- Исключения:
-
IllegalArgumentException- еслиboundне является одновременно положительным и конечным
nextFloat
default float nextFloat(float origin, float bound)
- Требования к реализации:
- Базовая реализация проверяет, что
originиboundявляются валидными, затем вызываетnextFloat(), масштабируя и сдвигая результат, чтобы он находился междуoriginиbound(исключительно). - Параметры:
-
origin- минимальное возвращаемое значение -
bound- верхний предел (исключительно) - Возвращает:
- псевдослучайное значение float в заданном диапазоне (включительно для начала, исключающий конец)
- Исключения:
-
IllegalArgumentException- еслиoriginне является конечным, илиboundне является конечным, илиoriginбольше или равноbound
nextDouble
default double nextDouble()
- Требования к реализации:
- Базовая реализация использует
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