Spec-Zone.ru › OpenJDK 24

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

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

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

Предоставляются методы для выполнения единственного перепрыгивания и для получения потока генераторов, полученных из исходного объекта путём итерационного копирования и перепрыгивания внутреннего состояния. Сгенерированные генераторы должны реализовывать интерфейс RandomGenerator.JumpableGenerator, но не обязательно реализовывать интерфейс RandomGenerator.LeapableGenerator. Типичная стратегия для многопоточной программы — создать один объект RandomGenerator.LeapableGenerator, вызвать его метод leaps ровно один раз, а затем распределить генераторы из полученного потока по одному на каждый поток. Затем для каждого такого генератора вызывается метод jump() для получения подпотока объектов-генераторов.

Объекты, реализующие RandomGenerator.LeapableGenerator, обычно не являются криптографически безопасными. Вместо этого используйте SecureRandom для получения криптографически безопасного генератора псевдослучайных чисел для использования в приложениях, чувствительных к безопасности.

С:
17

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

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.random.RandomGenerator

RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator

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

Модификатор и тип Метод Описание
RandomGenerator.LeapableGenerator copy()
Возвращает новый генератор, внутреннее состояние которого является точной копией этого генератора (следовательно, их будущее поведение должно быть идентичным, если они подвергнутся одинаковой серии операций).
default RandomGenerator.JumpableGenerator copyAndLeap()
Копирует этот генератор, перепрыгивает этот генератор вперёд, затем возвращает копию.
void leap()
Изменяет состояние этого генератора псевдослучайных чисел, чтобы перепрыгнуть вперёд на большое фиксированное расстояние (обычно 296 или более) в его цикле состояния.
double leapDistance()
Возвращает расстояние, на которое метод leap() перепрыгнет вперёд в цикле состояния этого объекта-генератора.
default Stream<RandomGenerator.JumpableGenerator> leaps()
Возвращает эффективный неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.JumpableGenerator.
default Stream<RandomGenerator.JumpableGenerator> leaps(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.JumpableGenerator.
static RandomGenerator.LeapableGenerator of(String name)
Возвращает экземпляр RandomGenerator.LeapableGenerator, использующий name алгоритм.

Методы, объявленные в интерфейсе 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

Методы, объявленные в интерфейсе java.util.random.RandomGenerator.JumpableGenerator

copyAndJump, jump, jumpDistance, jumps, jumps, rngs, rngs

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

of

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

copy

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

leap

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

leapDistance

double leapDistance()
Возвращает расстояние, на которое метод leap() перепрыгнет вперёд в цикле состояния этого объекта генератора.
Возвращает:
стандартное расстояние перехода (как значение double)

leaps

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

leaps

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

copyAndLeap

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

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

Spec-Zone.ru

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