Spec-Zone.ru › OpenJDK 24

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

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

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.random.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.

Методы, объявленные в интерфейсе java.util.random.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)
Возвращает поток, производящий заданное количество новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс 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)
Возвращает поток, производящий заданное количество новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. В идеале генераторы в потоке будут статистически независимыми.
Определяется в:
rngs в интерфейсе RandomGenerator.StreamableGenerator
Требования к реализации:
Стандартная реализация вызывает jumps(streamSize).
Параметры:
streamSize - количество генераторов для создания
Возвращает:
поток объектов, реализующих интерфейс RandomGenerator
Исключения:
IllegalArgumentException - если streamSize меньше нуля

copyAndJump

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

© 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.JumpableGenerator.html

Spec-Zone.ru

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