Spec-Zone.ru › OpenJDK 24

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

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

В идеале, все RandomGenerator.ArbitrarilyJumpableGenerator объекты, полученные путём итерационного перепрыгивания от одного исходного RandomGenerator.ArbitrarilyJumpableGenerator объекта, должны быть статистически независимыми друг от друга и индивидуально равномерными, при условии, что они не пересекают перекрывающиеся части цикла состояния. На практике, нужно довольствоваться некоторым приближением к независимости и равномерности. В частности, конкретная реализация может предполагать, что каждый генератор в потоке, полученном методом jump(), используется для генерации количества значений, не превышающего указанное расстояние перехода. Реализаторам рекомендуется использовать алгоритмы, период которых не менее 2127.

Для многих приложений достаточно перепрыгнуть вперёд на степень двойки или некоторое небольшое кратное степени двойки, но эта степень двойки может быть не представлена как значение long. Чтобы избежать использования значений BigInteger в качестве расстояний перехода, используются значения double.

Предоставлены методы для выполнения одной операции перехода, а также для создания потока генераторов, полученных из исходного путём итеративного копирования и перехода внутреннего состояния. Типичная стратегия для многопоточного приложения — создать один RandomGenerator.ArbitrarilyJumpableGenerator объект, вызвать его метод jump() ровно один раз, а затем раздать генераторы из результирующего потока, по одному на каждый поток. Однако, каждый сгенерированный генератор также имеет тип RandomGenerator.ArbitrarilyJumpableGenerator; с осторожностью, можно использовать различные расстояния перехода для прохождения всего цикла состояния различными способами.

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

С:
17

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

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

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

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

Модификатор и тип Метод Описание
RandomGenerator.ArbitrarilyJumpableGenerator copy()
Возвращает новый генератор, внутреннее состояние которого является точной копией этого генератора (поэтому их будущие действия должны быть идентичными, если они подвергнутся одной и той же серии операций).
default RandomGenerator.ArbitrarilyJumpableGenerator copyAndJump(double distance)
Копирует этот генератор, перепрыгивает этот генератор вперёд, затем возвращает копию.
default void jump()
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на большое фиксированное расстояние (обычно 264 или больше) в его цикле состояния.
void jump(double distance)
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на указанное расстояние в его цикле состояния.
void jumpPowerOfTwo(int logDistance)
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на расстояние, равное 2logDistance в его цикле состояния.
default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(double distance)
Возвращает эффективный неограниченный поток новых псевдослучайных генераторов чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator, полученных путём перепрыгивания копий этого генератора на различные целые кратные указанному расстоянию перехода.
default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(long streamSize, double distance)
Возвращает поток, генерирующий заданное streamSize количество новых псевдослучайных генераторов чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator, полученных путём перепрыгивания копий этого генератора на различные целые кратные указанному расстоянию перехода.
default void leap()
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на очень большое фиксированное расстояние (обычно 2128 или больше) в его цикле состояния.
static RandomGenerator.ArbitrarilyJumpableGenerator of(String name)
Возвращает экземпляр RandomGenerator.ArbitrarilyJumpableGenerator, который использует алгоритм 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, jumpDistance, jumps, jumps, rngs, rngs

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

copyAndLeap, leapDistance, leaps, leaps

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

of

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

copy

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

jumpPowerOfTwo

void jumpPowerOfTwo(int logDistance)
Изменяет состояние этого генератора псевдослучайных чисел, перепрыгивая вперед на расстояние, равное 2logDistance, в цикле его состояния.
Параметры:
logDistance - логарифм по основанию 2 расстояния для перескока вперед в цикле состояния
Исключения:
IllegalArgumentException - если logDistance 2logDistance больше периода этого генератора

jump

void jump(double distance)
Изменяет состояние этого генератора псевдослучайных чисел, перепрыгивая вперед на указанное расстояние в цикле его состояния.
Параметры:
distance - расстояние для перескока вперед в цикле состояния
Исключения:
IllegalArgumentException - если distance не больше или равно 0,0, или больше периода этого генератора

jump

default void jump()
Изменяет состояние этого генератора псевдослучайных чисел, перепрыгивая вперед на большое фиксированное расстояние (обычно 264 или больше) в цикле его состояния. Расстояние используется из метода jumpDistance().
Унаследовано от:
jump в интерфейсе RandomGenerator.JumpableGenerator
Требования к реализации:
Стандартная реализация вызывает jump(jumpDistance()).

jumps

default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(double distance)
Возвращает эффективно неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator, полученный путем перескока копий этого генератора с помощью различных целых кратных указанного расстояния перескока.
Требования к реализации:
Стандартная реализация эквивалентна jumps (Long.MAX_VALUE).
Параметры:
distance - расстояние для перескока вперед в цикле состояния
Возвращает:
поток объектов, реализующих интерфейс RandomGenerator
Исключения:
IllegalArgumentException - если distance не больше или равно 0,0, или больше периода этого генератора

jumps

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

leap

default void leap()
Изменяет состояние этого генератора псевдослучайных чисел, перепрыгивая вперед на очень большое фиксированное расстояние (обычно 2128 или больше) в цикле его состояния. Расстояние используется из метода leapDistance().
Унаследовано от:
leap в интерфейсе RandomGenerator.LeapableGenerator

copyAndJump

default RandomGenerator.ArbitrarilyJumpableGenerator copyAndJump(double distance)
Копирует этот генератор, перепрыгивает этот генератор вперед, затем возвращает копию.
Требования к реализации:
Стандартная реализация копирует этот, jumps(distance), а затем возвращает копию.
Параметры:
distance - расстояние для перескока вперед в цикле состояния
Возвращает:
копию этого объекта генератора до перескока
Исключения:
IllegalArgumentException - если distance не больше или равно 0,0, или больше периода этого генератора

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

Spec-Zone.ru

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