Интерфейс 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 |
Копирует этот генератор, перепрыгивает этот генератор вперёд, затем возвращает копию. |
default void |
jump() |
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на большое фиксированное расстояние (обычно 264 или больше) в его цикле состояния. |
void |
jump |
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на указанное расстояние в его цикле состояния. |
void |
jumpPowerOfTwo |
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на расстояние, равное 2 logDistance в его цикле состояния. |
default Stream |
jumps |
Возвращает эффективный неограниченный поток новых псевдослучайных генераторов чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator, полученных путём перепрыгивания копий этого генератора на различные целые кратные указанному расстоянию перехода. |
default Stream |
jumps |
Возвращает поток, генерирующий заданное streamSize количество новых псевдослучайных генераторов чисел, каждый из которых реализует интерфейс RandomGenerator.ArbitrarilyJumpableGenerator, полученных путём перепрыгивания копий этого генератора на различные целые кратные указанному расстоянию перехода. |
default void |
leap() |
Изменяет состояние этого псевдослучайного генератора чисел, чтобы перепрыгнуть вперёд на очень большое фиксированное расстояние (обычно 2128 или больше) в его цикле состояния. |
static RandomGenerator.ArbitrarilyJumpableGenerator |
of |
Возвращает экземпляр 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)
- Параметры:
-
name- Название алгоритма генератора случайных чисел алгоритм - Возвращает:
- Экземпляр
RandomGenerator.ArbitrarilyJumpableGenerator - Исключения:
-
NullPointerException- если имя null -
IllegalArgumentException- если алгоритм с указанным именем не найден
copy
RandomGenerator.ArbitrarilyJumpableGenerator copy()
- Унаследовано от:
-
copyв интерфейсеRandomGenerator.JumpableGenerator - Унаследовано от:
-
copyв интерфейсеRandomGenerator.LeapableGenerator - Возвращает:
- новый объект, являющийся копией этого генератора
jumpPowerOfTwo
void jumpPowerOfTwo(int logDistance)
logDistance, в цикле его состояния.- Параметры:
-
logDistance- логарифм по основанию 2 расстояния для перескока вперед в цикле состояния - Исключения:
-
IllegalArgumentException- еслиlogDistance2logDistanceбольше периода этого генератора
jump
void jump(double distance)
- Параметры:
-
distance- расстояние для перескока вперед в цикле состояния - Исключения:
-
IllegalArgumentException- еслиdistanceне больше или равно 0,0, или больше периода этого генератора
jump
default void jump()
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()
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