Интерфейс RandomGenerator.JumpableGenerator
- Все суперинтерфейсы:
-
RandomGenerator,RandomGenerator.StreamableGenerator
- Все известные подинтерфейсы:
-
RandomGenerator.ArbitrarilyJumpableGenerator,RandomGenerator.LeapableGenerator
- Охватываемый интерфейс:
RandomGenerator
public static interface RandomGenerator.JumpableGenerator extends RandomGenerator.StreamableGenerator
В идеале, все объекты 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 |
jumps() |
Возвращает эффективно неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. |
default Stream |
jumps |
Возвращает поток, производящий указанное streamSize количество новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. |
static RandomGenerator.JumpableGenerator |
of |
|
default Stream |
rngs() |
Возвращает эффективно неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. |
default Stream |
rngs |
Возвращает поток, производящий указанное 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)
- Параметры:
-
name- Имя алгоритма генератора случайных чисел алгоритм - Возвращает:
- Экземпляр
RandomGenerator.JumpableGenerator - Исключения:
-
NullPointerException- если имя равно null -
IllegalArgumentException- если алгоритм с указанным именем не найден
copy
RandomGenerator.JumpableGenerator copy()
- Возвращает:
- новый объект, являющийся копией этого генератора
jump
void jump()
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