Spec-Zone.ru › OpenJDK 21

Интерфейс 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 для получения криптографически безопасного генератора псевдослучайных чисел для использования в приложениях, чувствительных к безопасности.

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

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

Spec-Zone.ru

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