Spec-Zone.ru › OpenJDK 27

Интерфейс RandomGenerator.ArbitrarilyJumpableGenerator

Все суперинтерфейсы:
RandomGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.StreamableGenerator
Включающий интерфейс:
RandomGenerator
public static interface RandomGenerator.ArbitrarilyJumpableGenerator extends RandomGenerator.LeapableGenerator
Этот интерфейс предназначен для предоставления общего протокола объектам, генерирующим последовательности псевдослучайных значений и способным легко перепрыгивать на произвольное расстояние вперёд, к удалённой точке цикла состояний.

В идеале все объекты RandomGenerator.ArbitrarilyJumpableGenerator, полученные путём итеративных прыжков от одного исходного объекта RandomGenerator.ArbitrarilyJumpableGenerator, статистически независимы друг от друга и каждый по отдельности равномерно распределён, если они не проходят через перекрывающиеся участки цикла состояний. На практике приходится довольствоваться некоторым приближением к независимости и равномерности. В частности, конкретная реализация может предполагать, что каждый генератор в потоке, полученном методом jump(), используется для создания числа значений, не превышающего заданное расстояние прыжка. Реализаторам рекомендуется использовать алгоритмы с периодом не менее 2127.

Для многих приложений достаточно выполнить прыжок вперёд на степень двойки или небольшое кратное степени двойки, но эта степень двойки может быть непредставима как значение long. Чтобы избежать использования значений BigInteger в качестве расстояний прыжка, вместо них используются значения double.

Предусмотрены методы для выполнения одной операции прыжка, а также для создания потока генераторов, полученных из исходного генератора путём итеративного копирования и изменения внутреннего состояния прыжками. Типичная стратегия для многопоточного приложения — создать один объект RandomGenerator.ArbitrarilyJumpableGenerator, вызвать его метод jump() ровно один раз, а затем распределить генераторы из полученного потока — по одному каждому потоку выполнения. Однако каждый созданный генератор также имеет тип RandomGenerator.ArbitrarilyJumpableGenerator; при аккуратном использовании разных расстояний прыжка можно различными способами пройти весь цикл состояний.

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

С версии:
17

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

Вложенные классы и интерфейсы, объявленные в интерфейсе RandomGenerator

RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
Модификатор и тип Интерфейс Описание
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.

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

Модификатор и тип Метод Описание
RandomGenerator.ArbitrarilyJumpableGenerator copy()
Возвращает новый генератор, внутреннее состояние которого является точной копией состояния этого генератора (поэтому их дальнейшее поведение должно быть одинаковым, если к ним применить одну и ту же последовательность операций).
default RandomGenerator.ArbitrarilyJumpableGenerator copyAndJump(double distance)
Копирует этот генератор, выполняет прыжок этого генератора вперёд, а затем возвращает копию.
default void jump()
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на большое фиксированное расстояние (обычно 264 или более) в пределах цикла состояний.
void jump(double distance)
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на указанное расстояние в пределах цикла состояний.
void jumpPowerOfTwo(int logDistance)
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на расстояние, равное 2logDistance, в пределах цикла состояний.
default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(double distance)
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator и создан путём выполнения прыжков копий этого генератора на различные целочисленные кратные указанного расстояния прыжка.
default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(long streamSize, double distance)
Возвращает поток, создающий указанное число streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator и создан путём выполнения прыжков копий этого генератора на различные целочисленные кратные указанного расстояния прыжка.
default void leap()
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на очень большое фиксированное расстояние (обычно 2128 или более) в пределах цикла состояний.
static RandomGenerator.ArbitrarilyJumpableGenerator of(String name)
Возвращает экземпляр RandomGenerator.ArbitrarilyJumpableGenerator, использующий алгоритм name.

Методы, объявленные в интерфейсе RandomGenerator

doubles, doubles, doubles, doubles, equiDoubles, ints, ints, ints, ints, isDeprecated, longs, longs, longs, longs, nextBoolean, nextBytes, nextDouble, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextFloat, nextGaussian, nextGaussian, nextInt, nextInt, nextInt, nextLong, nextLong, nextLong
Модификатор и тип Метод Описание
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.
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 между указанной начальной границей (включительно) и указанной верхней границей (исключительно).

Методы, объявленные в интерфейсе RandomGenerator.JumpableGenerator

copyAndJump, jumpDistance, jumps, jumps, rngs, rngs
Модификатор и тип Метод Описание
default RandomGenerator copyAndJump()
Копирует этот генератор, выполняет прыжок этого генератора вперёд, а затем возвращает копию.
double jumpDistance()
Возвращает расстояние, на которое метод jump() выполнит прыжок вперёд в цикле состояний этого объекта-генератора.
default Stream<RandomGenerator> jumps()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
default Stream<RandomGenerator> jumps(long streamSize)
Возвращает поток, создающий указанное число streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
default Stream<RandomGenerator> rngs()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
default Stream<RandomGenerator> rngs(long streamSize)
Возвращает поток, создающий указанное число streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.

Методы, объявленные в интерфейсе RandomGenerator.LeapableGenerator

copyAndLeap, leapDistance, leaps, leaps
Модификатор и тип Метод Описание
default RandomGenerator.JumpableGenerator copyAndLeap()
Копирует этот генератор, выполняет скачок этого генератора вперёд, а затем возвращает копию.
double leapDistance()
Возвращает расстояние, на которое метод leap() выполнит скачок вперёд в цикле состояний этого объекта-генератора.
default Stream<RandomGenerator.JumpableGenerator> leaps()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.JumpableGenerator.
default Stream<RandomGenerator.JumpableGenerator> leaps(long streamSize)
Возвращает поток, создающий указанное число streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.JumpableGenerator.

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

of

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

copy

RandomGenerator.ArbitrarilyJumpableGenerator copy()
Возвращает новый генератор, внутреннее состояние которого является точной копией состояния этого генератора (поэтому их дальнейшее поведение должно быть одинаковым, если к ним применить одну и ту же последовательность операций).
Определён в:
copy в интерфейсе RandomGenerator.JumpableGenerator
Определён в:
copy в интерфейсе RandomGenerator.LeapableGenerator
Возвращает:
новый объект, являющийся копией этого генератора

jumpPowerOfTwo

void jumpPowerOfTwo(int logDistance)
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на расстояние, равное 2logDistance, в пределах цикла состояний.
Параметры:
logDistance - двоичный логарифм расстояния прыжка вперёд в пределах цикла состояний
Вызывает исключения:
IllegalArgumentException - если logDistance составляет 2logDistance и превышает период этого генератора

jump

void jump(double distance)
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на указанное расстояние в пределах цикла состояний.
Параметры:
distance - расстояние прыжка вперёд в пределах цикла состояний
Вызывает исключения:
IllegalArgumentException - если distance не больше или равно 0.0 либо превышает период этого генератора

jump

default void jump()
Изменяет состояние этого генератора псевдослучайных чисел, выполняя прыжок вперёд на большое фиксированное расстояние (обычно 264 или более) в пределах цикла состояний. Используемое расстояние возвращается методом jumpDistance().
Определён в:
jump в интерфейсе RandomGenerator.JumpableGenerator
Требования к реализации:
Реализация по умолчанию вызывает jump(jumpDistance()).

jumps

default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(double distance)
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator и создан путём выполнения прыжков копий этого генератора на различные целочисленные кратные указанного расстояния прыжка.
Требования к реализации:
Реализация по умолчанию эквивалентна jumps (Long.MAX_VALUE).
Параметры:
distance - расстояние прыжка вперёд в пределах цикла состояний
Возвращает:
поток объектов, реализующих интерфейс RandomGenerator
Вызывает исключения:
IllegalArgumentException - если distance не больше или равно 0.0 либо превышает период этого генератора

jumps

default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(long streamSize, double distance)
Возвращает поток, создающий указанное число streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator и создан путём выполнения прыжков копий этого генератора на различные целочисленные кратные указанного расстояния прыжка.
Требования к реализации:
Реализация по умолчанию эквивалентна jumps(distance).limit(streamSize).
Параметры:
streamSize - количество создаваемых генераторов
distance - расстояние прыжка вперёд в пределах цикла состояний
Возвращает:
поток объектов, реализующих интерфейс RandomGenerator
Вызывает исключения:
IllegalArgumentException - если streamSize меньше нуля или если distance не больше или равно 0.0 либо превышает период этого генератора

leap

default void leap()
Изменяет состояние этого генератора псевдослучайных чисел, выполняя скачок вперёд на очень большое фиксированное расстояние (обычно 2128 или более) в пределах цикла состояний. Используемое расстояние возвращается методом leapDistance().
Определён в:
leap в интерфейсе RandomGenerator.LeapableGenerator

copyAndJump

default RandomGenerator.ArbitrarilyJumpableGenerator copyAndJump(double distance)
Копирует этот генератор, выполняет прыжок этого генератора вперёд, а затем возвращает копию.
Требования к реализации:
Реализация по умолчанию копирует этот генератор, вызывает jumps(distance), а затем возвращает копию.
Параметры:
distance - расстояние прыжка вперёд в пределах цикла состояний
Возвращает:
копию объекта-генератора до выполнения прыжка
Вызывает исключения:
IllegalArgumentException - если distance не больше или равно 0.0 либо превышает период этого генератора

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

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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