Spec-Zone.ru › OpenJDK 27

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

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

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

Предусмотрены методы для выполнения одной операции перехода, а также для создания потока генераторов, полученных из исходного путем итеративного копирования и перехода внутреннего состояния. Типичная стратегия для многопоточного приложения — создать один объект RandomGenerator.JumpableGenerator, ровно один раз вызвать его метод jump() и затем распределить генераторы из полученного потока — по одному на каждый поток выполнения. Как правило, не следует вызывать jump() для генератора, который сам был создан методом jump(), поскольку в результате может быть получен генератор, идентичный другому генератору, уже созданному этим вызовом метода jump(). По этой причине тип возвращаемого значения метода jumps() — Stream<RandomGenerator>, а не Stream<RandomGenerator.JumpableGenerator>, хотя фактические объекты-генераторы в этом потоке, вероятно, также реализуют интерфейс RandomGenerator.JumpableGenerator.

Объекты, реализующие RandomGenerator.JumpableGenerator, как правило, не являются криптографически стойкими. Для использования в приложениях, чувствительных к безопасности, рассмотрите возможность применения 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.JumpableGenerator copy()
Возвращает новый генератор, внутреннее состояние которого является точной копией состояния этого генератора (поэтому их дальнейшее поведение должно быть идентичным при выполнении одной и той же последовательности операций).
default RandomGenerator copyAndJump()
Копирует этот генератор, выполняет переход этого генератора вперед, а затем возвращает копию.
void jump()
Изменяет состояние этого генератора псевдослучайных чисел, чтобы выполнить переход вперед на большое фиксированное расстояние (обычно 264 или более) в пределах его цикла состояний.
double jumpDistance()
Возвращает расстояние, на которое метод jump() перемещает генератор вперед в пределах цикла состояний этого объекта.
default Stream<RandomGenerator> jumps()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
default Stream<RandomGenerator> jumps(long streamSize)
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
static RandomGenerator.JumpableGenerator of(String name)
Возвращает экземпляр RandomGenerator.JumpableGenerator, использующий name алгоритм.
default Stream<RandomGenerator> rngs()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
default Stream<RandomGenerator> rngs(long streamSize)
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.

Методы, объявленные в интерфейсе 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 между указанной начальной границей (включительно) и указанной конечной границей (не включительно).

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

of

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

copy

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

jump

void jump()
Изменяет состояние этого генератора псевдослучайных чисел, чтобы выполнить переход вперед на большое фиксированное расстояние (обычно 264 или более) в пределах его цикла состояний.

jumpDistance

double jumpDistance()
Возвращает расстояние, на которое метод jump() перемещает генератор вперед в пределах цикла состояний этого объекта.
Возвращает:
расстояние перехода по умолчанию (в виде значения double)

jumps

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

jumps

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

rngs

default Stream<RandomGenerator> rngs()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. В идеале генераторы в потоке будут статистически независимы.
Определено в:
rngs в интерфейсе RandomGenerator.StreamableGenerator
Требования к реализации:
Реализация по умолчанию вызывает jumps().
Возвращает:
поток объектов, реализующих интерфейс RandomGenerator

rngs

default Stream<RandomGenerator> rngs(long streamSize)
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. В идеале генераторы в потоке будут статистически независимы.
Определено в:
rngs в интерфейсе RandomGenerator.StreamableGenerator
Требования к реализации:
Реализация по умолчанию вызывает jumps(streamSize).
Параметры:
streamSize — количество генераторов, которые нужно создать
Возвращает:
поток объектов, реализующих интерфейс RandomGenerator
Исключения:
IllegalArgumentException — если streamSize меньше нуля

copyAndJump

default RandomGenerator copyAndJump()
Копирует этот генератор, выполняет переход этого генератора вперед, а затем возвращает копию.
Требования к реализации:
Реализация по умолчанию создает копию этого генератора, выполняет переход, а затем возвращает копию.
Возвращает:
копию этого объекта-генератора, созданную до выполнения перехода

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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