Интерфейс RandomGenerator.SplittableGenerator
- Все суперинтерфейсы:
RandomGenerator, RandomGenerator.StreamableGenerator
- Все известные реализующие классы:
SplittableRandom
- Внешний интерфейс:
RandomGenerator
public static interface RandomGenerator.SplittableGenerator extends RandomGenerator.StreamableGenerator
В идеале все объекты RandomGenerator.SplittableGenerator, полученные рекурсивным разделением одного исходного объекта RandomGenerator.SplittableGenerator, статистически независимы друг от друга и каждый из них имеет равномерное распределение. Поэтому можно ожидать, что набор значений, сгенерированных всеми такими объектами, будет обладать теми же статистическими свойствами, что и такое же количество значений, сгенерированных одним потоком с использованием одного объекта RandomGenerator.SplittableGenerator. На практике приходится довольствоваться некоторым приближением к независимости и равномерности.
Предусмотрены методы для выполнения одной операции разделения, а также для создания потока генераторов, отделённых от исходного (посредством итеративного или рекурсивного разделения либо их сочетания).
Объекты, реализующие RandomGenerator.SplittableGenerator, обычно не являются криптографически защищёнными. Для использования в приложениях, где важна безопасность, рассмотрите возможность применения SecureRandom — криптографически защищённого генератора псевдослучайных чисел.
- Начиная с:
- 17
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе RandomGenerator
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
RandomGenerator.ArbitrarilyJumpableGenerator |
Этот интерфейс предназначен для предоставления общего протокола объектам, которые генерируют последовательности псевдослучайных значений и могут легко совершить прыжок вперёд на произвольное расстояние, к удалённой точке цикла состояния. |
static interface |
RandomGenerator.JumpableGenerator |
Этот интерфейс предназначен для предоставления общего протокола объектам, которые генерируют псевдослучайные значения и могут легко совершить прыжок вперёд на умеренное расстояние (например, 264), к удалённой точке цикла состояния. |
static interface |
RandomGenerator.LeapableGenerator |
Этот интерфейс предназначен для предоставления общего протокола объектам, которые генерируют последовательности псевдослучайных значений и могут не только совершать прыжки, но и делать скачки вперёд на большое расстояние (например, 2128), к очень удалённой точке цикла состояния. |
static interface |
RandomGenerator.SplittableGenerator |
Этот интерфейс предназначен для предоставления общего протокола объектам, которые генерируют последовательности псевдослучайных значений и могут быть разделены на два объекта (исходный и новый), каждый из которых следует тому же протоколу (и поэтому может рекурсивно разделяться неограниченно). |
static interface |
RandomGenerator.StreamableGenerator |
Интерфейс RandomGenerator.StreamableGenerator расширяет интерфейс RandomGenerator, добавляя методы, возвращающие потоки объектов RandomGenerator. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static RandomGenerator.SplittableGenerator |
of |
|
default Stream |
rngs() |
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. |
default Stream |
rngs |
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. |
RandomGenerator.SplittableGenerator |
split() |
Возвращает новый генератор псевдослучайных чисел, отделённый от этого и реализующий интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator. |
RandomGenerator.SplittableGenerator |
split |
Возвращает новый генератор псевдослучайных чисел, отделённый от этого и реализующий интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator. |
default Stream |
splits() |
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Stream |
splits |
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Stream |
splits |
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Stream |
splits |
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Методы, объявленные в интерфейсе 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
default DoubleStream |
doubles() |
Возвращает практически неограниченный поток псевдослучайно выбранных значений double. |
default DoubleStream |
doubles |
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default DoubleStream |
doubles |
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений double. |
default DoubleStream |
doubles |
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений double, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default DoubleStream |
equiDoubles |
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанной left границей и указанной right границей. |
default IntStream |
ints() |
Возвращает практически неограниченный поток псевдослучайно выбранных значений int. |
default IntStream |
ints |
Возвращает практически неограниченный поток псевдослучайно выбранных значений int, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default IntStream |
ints |
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений int. |
default IntStream |
ints |
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений int, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default boolean |
isDeprecated() |
Возвращает true, если реализация RandomGenerator (алгоритм) помечена как устаревающая. |
default LongStream |
longs() |
Возвращает практически неограниченный поток псевдослучайно выбранных значений long. |
default LongStream |
longs |
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений long. |
default LongStream |
longs |
Возвращает практически неограниченный поток псевдослучайно выбранных значений long, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default LongStream |
longs |
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений long, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default boolean |
nextBoolean() |
Возвращает псевдослучайно выбранное значение boolean. |
default void |
nextBytes |
Заполняет предоставленный пользователем массив байтов сгенерированными значениями байтов, псевдослучайно и равномерно выбранными из диапазона от -128 (включительно) до 127 (включительно). |
default double |
nextDouble() |
Возвращает псевдослучайное значение double от нуля (включительно) до единицы (исключительно). |
default double |
nextDouble |
Возвращает псевдослучайно выбранное значение double от нуля (включительно) до указанной верхней границы (исключительно). |
default double |
nextDouble |
Возвращает псевдослучайно выбранное значение double между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default double |
nextExponential() |
Возвращает неотрицательное значение double, псевдослучайно выбранное из экспоненциального распределения со средним значением 1. |
default float |
nextFloat() |
Возвращает псевдослучайное значение float от нуля (включительно) до единицы (исключительно). |
default float |
nextFloat |
Возвращает псевдослучайно выбранное значение float от нуля (включительно) до указанной верхней границы (исключительно). |
default float |
nextFloat |
Возвращает псевдослучайно выбранное значение float между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
default double |
nextGaussian() |
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением 0 и стандартным отклонением 1. |
default double |
nextGaussian |
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением и стандартным отклонением, заданными аргументами. |
default int |
nextInt() |
Возвращает псевдослучайно выбранное значение int. |
default int |
nextInt |
Возвращает псевдослучайно выбранное значение int от нуля (включительно) до указанной верхней границы (исключительно). |
default int |
nextInt |
Возвращает псевдослучайно выбранное значение int между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
long |
nextLong() |
Возвращает псевдослучайно выбранное значение long. |
default long |
nextLong |
Возвращает псевдослучайно выбранное значение long от нуля (включительно) до указанной верхней границы (исключительно). |
default long |
nextLong |
Возвращает псевдослучайно выбранное значение long между указанной нижней границей (включительно) и указанной верхней границей (исключительно). |
Подробное описание методов
of
static RandomGenerator.SplittableGenerator of(String name)
- Параметры:
-
name— имя алгоритма генератора случайных чисел - Возвращает:
- экземпляр
RandomGenerator.SplittableGenerator - Вызывает исключения:
-
NullPointerException— если имя равно null -
IllegalArgumentException— если алгоритм с указанным именем не найден
split
RandomGenerator.SplittableGenerator split()
RandomGenerator и RandomGenerator.SplittableGenerator. Этот генератор псевдослучайных чисел может использоваться в качестве источника псевдослучайных битов для инициализации состояния нового генератора.
- Возвращает:
- новый объект, реализующий интерфейсы
RandomGeneratorиRandomGenerator.SplittableGenerator
split
RandomGenerator.SplittableGenerator split(RandomGenerator.SplittableGenerator source)
RandomGenerator и RandomGenerator.SplittableGenerator.- Параметры:
-
source— экземплярRandomGenerator.SplittableGenerator, который будет использоваться вместо этого генератора как источник псевдослучайных битов для инициализации состояния новых генераторов. - Возвращает:
- объект, реализующий интерфейсы
RandomGeneratorиRandomGenerator.SplittableGenerator - Вызывает исключения:
-
NullPointerException— если источник равен null
splits
default Stream<RandomGenerator.SplittableGenerator> splits()
RandomGenerator.SplittableGenerator. Этот генератор псевдослучайных чисел может использоваться в качестве источника псевдослучайных битов для инициализации состояния новых генераторов.
- Требования к реализации:
- Реализация по умолчанию вызывает
splits(this). - Примечание по реализации:
- Этот метод разрешается реализовать способом, эквивалентным
splits(Long.MAX_VALUE). - Возвращает:
- поток объектов
RandomGenerator.SplittableGenerator
splits
Stream<RandomGenerator.SplittableGenerator> splits(long streamSize)
streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. Этот генератор псевдослучайных чисел может использоваться в качестве источника псевдослучайных битов для инициализации состояния новых генераторов.
- Параметры:
-
streamSize— количество генерируемых значений - Возвращает:
- поток объектов
RandomGenerator.SplittableGenerator - Вызывает исключения:
-
IllegalArgumentException— еслиstreamSizeменьше нуля
splits
Stream<RandomGenerator.SplittableGenerator> splits(RandomGenerator.SplittableGenerator source)
RandomGenerator.SplittableGenerator.- Примечание по реализации:
- Этот метод разрешается реализовать способом, эквивалентным
splits(Long.MAX_VALUE, source). - Параметры:
-
source— экземплярRandomGenerator.SplittableGenerator, который будет использоваться вместо этого генератора как источник псевдослучайных битов для инициализации состояния новых генераторов. - Возвращает:
- поток объектов
RandomGenerator.SplittableGenerator - Вызывает исключения:
-
NullPointerException— если источник равен null
splits
Stream<RandomGenerator.SplittableGenerator> splits(long streamSize, RandomGenerator.SplittableGenerator source)
streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.- Параметры:
-
streamSize— количество генерируемых значений -
source— экземплярRandomGenerator.SplittableGenerator, который будет использоваться вместо этого генератора как источник псевдослучайных битов для инициализации состояния новых генераторов. - Возвращает:
- поток объектов
RandomGenerator.SplittableGenerator - Вызывает исключения:
-
IllegalArgumentException— еслиstreamSizeменьше нуля -
NullPointerException— если источник равен null
rngs
default Stream<RandomGenerator> rngs()
RandomGenerator. В идеале генераторы в потоке будут статистически независимыми.- Определён в:
-
rngsв интерфейсеRandomGenerator.StreamableGenerator - Требования к реализации:
- Реализация по умолчанию вызывает
splits(). - Возвращает:
- поток объектов, реализующих интерфейс
RandomGenerator
rngs
default Stream<RandomGenerator> rngs(long streamSize)
streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator. В идеале генераторы в потоке будут статистически независимыми.- Определён в:
-
rngsв интерфейсеRandomGenerator.StreamableGenerator - Требования к реализации:
- Реализация по умолчанию вызывает
splits(streamSize). - Параметры:
-
streamSize— количество создаваемых генераторов - Возвращает:
- поток объектов, реализующих интерфейс
RandomGenerator - Вызывает исключения:
-
IllegalArgumentException— еслиstreamSizeменьше нуля
© 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.