Spec-Zone.ru › OpenJDK 25

Интерфейс 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

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

Модификатор и тип Метод Описание
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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/random/RandomGenerator.JumpableGenerator.html

Spec-Zone.ru

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