Spec-Zone.ru › OpenJDK 17

Интерфейс 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
Требования к реализации:
Базовая реализация вызывает jump().
Возвращает:
поток объектов, которые реализуют интерфейс RandomGenerator

rngs

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

copyAndJump

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

© 1993, 2021, 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/17/docs/api/java.base/java/util/random/RandomGenerator.JumpableGenerator.html

Spec-Zone.ru

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