Интерфейс 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 равно 23 для значений типа float и 52 для значений типа 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
Краткое описание вложенных классов
| Modifier and Type | Interface | Description |
|---|---|---|
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. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
default DoubleStream |
doubles() |
Возвращает эффективно неограниченный поток псевдослучайных double значений. |
default DoubleStream |
doubles |
Возвращает эффективно неограниченный поток псевдослучайных double значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
default DoubleStream |
doubles |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений. |
default DoubleStream |
doubles |
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно). |
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.
- Возвращает:
- a
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
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
longы
default LongStream longs()
long значений.- Требования к реализации:
- В реализации по умолчанию генерируется последовательный поток, который многократно вызывает
nextLong(). - Примечание по реализации:
- Разрешается реализовать этот метод способом, эквивалентным
longs(Long.MAX_VALUE). - Возвращает:
- поток псевдослучайных
longзначений
longы
default LongStream longs(long randomNumberOrigin, long randomNumberBound)
long значений, где каждое значение находится между указанным началом (включительно) и указанным пределом (исключительно).- Требования к реализации:
- В реализации по умолчанию генерируется последовательный поток, который многократно вызывает
nextLong(randomNumberOrigin, randomNumberBound). - Примечание по реализации:
- Разрешается реализовать этот метод способом, эквивалентным
longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound). - Параметры:
-
randomNumberOrigin- наименьшее значение, которое может быть сгенерировано -
randomNumberBound- верхняя граница (исключительно) для каждого генерируемого значения - Возвращает:
- поток псевдослучайных
longзначений, каждое из которых находится между указанным началом (включительно) и указанным пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиrandomNumberOriginбольше или равноrandomNumberBound
longы
default LongStream longs(long streamSize)
streamSize псевдослучайных long значений.- Требования к реализации:
- В реализации по умолчанию генерируется последовательный поток, который многократно вызывает
nextLong(). - Параметры:
-
streamSize- количество значений для генерации - Возвращает:
- поток псевдослучайных
longзначений - Выбрасывает:
-
IllegalArgumentException- еслиstreamSizeменьше нуля
longы
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)
- Требования к реализации:
- Реализация по умолчанию генерирует результаты на основе многократного вызова
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 значение между нулём (включительно) и единицей (исключительно).- Требования к реализации:
- По умолчанию используется 24 старших бита из вызова
nextInt(). - Возвращает:
- псевдослучайное
floatзначение между нулём (включительно) и единицей (исключительно)
nextFloat
default float nextFloat(float bound)
float значение между нулём (включительно) и заданным пределом (исключительно).- Требования к реализации:
- По умолчанию проверяется, что
boundявляется положительным конечным значением с плавающей запятой. Затем вызывается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 значение между нулём (включительно) и единицей (исключительно).- Требования к реализации:
- По умолчанию используются 53 старших бита из вызова
nextLong(). - Возвращает:
- псевдослучайное
doubleзначение между нулём (включительно) и единицей (исключительно)
nextDouble
default double nextDouble(double bound)
double значение между нулём (включительно) и заданным пределом (исключительно).- Требования к реализации:
- По умолчанию проверяется, что
boundявляется положительным конечным значением с двойной точностью. Затем вызывается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является положительнымint. Затем вызываетсяnextInt(), ограничивая результат значениями больше или равными нулю и меньшеbound. Еслиboundявляется степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызоваnextInt()до тех пор, пока результат не будет больше или равен нулю и меньшеbound. - Параметры:
-
bound- верхний предел (исключительно) для возвращаемого значения. Должен быть положительным. - Возвращает:
- псевдослучайное
intзначение между нулём (включительно) и пределом (исключительно) - Исключение:
-
IllegalArgumentException- еслиboundне является положительным
nextInt
default int nextInt(int origin, int bound)
int значение между указанным начальным значением (включительно) и указанным пределом (исключительно).- Требования к реализации:
- В реализации по умолчанию проверяется, что
originиboundявляются положительнымиints. Затем вызываетсяnextInt(), ограничивая результат значениями больше или равнымиoriginи меньшеbound. Еслиboundявляется степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызоваnextInt()до тех пор, пока результат не будет больше или равенoriginи меньшеbound. - Параметры:
-
origin- наименьшее возвращаемое значение -
bound- верхний предел (исключительно) для возвращаемого значения - Возвращает:
- псевдослучайное
intзначение между начальным значением (включительно) и пределом (исключительно) - Исключение:
-
IllegalArgumentException- еслиoriginбольше или равноbound
nextLong
long nextLong()
long значение.- Возвращает:
- псевдослучайное
longзначение
nextLong
default long nextLong(long bound)
long значение между нулём (включительно) и указанным пределом (исключительно).- Требования к реализации:
- В реализации по умолчанию проверяется, что
boundявляется положительнымlong. Затем вызываетсяnextLong(), ограничивая результат значениями больше или равными нулю и меньшеbound. Еслиboundявляется степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызоваnextLong()до тех пор, пока результат не будет больше или равен нулю и меньшеbound. - Параметры:
-
bound- верхний предел (исключительно) для возвращаемого значения. Должен быть положительным. - Возвращает:
- псевдослучайное
longзначение между нулём (включительно) и пределом (исключительно) - Исключение:
-
IllegalArgumentException- еслиboundне является положительным
nextLong
default long nextLong(long origin, long bound)
long значение между указанным начальным значением (включительно) и указанным пределом (исключительно).- Требования к реализации:
- В реализации по умолчанию проверяется, что
originиboundявляются положительнымиlongs. Затем вызываетсяnextLong(), ограничивая результат значениями больше или равнымиoriginи меньшеbound. Еслиboundявляется степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызоваnextLong()до тех пор, пока результат не будет больше или равенoriginи меньшеbound. - Параметры:
-
origin- наименьшее возвращаемое значение -
bound- верхний предел (исключительно) для возвращаемого значения - Возвращает:
- псевдослучайное
longзначение между начальным значением (включительно) и пределом (исключительно) - Исключение:
-
IllegalArgumentException- еслиoriginбольше или равноbound
nextGaussian
default double nextGaussian()
- Требования к реализации:
- По умолчанию используется быстрый измененный алгоритм Зиггурата Макфарлейна (в основном табличный, с редкими случаями, обрабатываемыми вычислениями и отбором). Также используется метод псевдо-алиасов Уолкера для выборки из дискретного распределения.
- Возвращает:
- псевдослучайное значение, выбранное из гауссова распределения
nextGaussian
default double nextGaussian(double mean, double stddev)
- Требования к реализации:
- По умолчанию используется быстрый измененный алгоритм Зиггурата Макфарлейна (в основном табличный, с редкими случаями, обрабатываемыми вычислениями и отбором). Также используется метод псевдо-алиасов Уолкера для выборки из дискретного распределения.
- Параметры:
-
mean- среднее значение гауссова распределения -
stddev- стандартное отклонение (квадратный корень из дисперсии) гауссова распределения - Возвращает:
- псевдослучайное значение, выбранное из указанного гауссова распределения
- Исключение:
-
IllegalArgumentException- еслиstddevотрицательно
nextExponential
default double nextExponential()
- Требования к реализации:
- По умолчанию используется быстрый измененный алгоритм Зиггурата Макфарлейна (в основном табличный, с редкими случаями, обрабатываемыми вычислениями и отбором). Также используется метод псевдо-алиасов Уолкера для выборки из дискретного распределения.
- Возвращает:
- неотрицательное псевдослучайное значение, выбранное из экспоненциального распределения
© 1993, 2021, 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/17/docs/api/java.base/java/util/random/RandomGenerator.html