Spec-Zone.ru › OpenJDK 27

Интерфейс 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(String name)
Возвращает экземпляр RandomGenerator.SplittableGenerator, использующий алгоритм name алгоритм.
default Stream<RandomGenerator> rngs()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
default Stream<RandomGenerator> rngs(long streamSize)
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.
RandomGenerator.SplittableGenerator split()
Возвращает новый генератор псевдослучайных чисел, отделённый от этого и реализующий интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator.
RandomGenerator.SplittableGenerator split(RandomGenerator.SplittableGenerator source)
Возвращает новый генератор псевдослучайных чисел, отделённый от этого и реализующий интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator.
default Stream<RandomGenerator.SplittableGenerator> splits()
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.
Stream<RandomGenerator.SplittableGenerator> splits(long streamSize)
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.
Stream<RandomGenerator.SplittableGenerator> splits(long streamSize, RandomGenerator.SplittableGenerator source)
Возвращает поток, создающий указанное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.
Stream<RandomGenerator.SplittableGenerator> splits(RandomGenerator.SplittableGenerator source)
Возвращает практически неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс 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 randomNumberOrigin, double randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default DoubleStream doubles(long streamSize)
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений double.
default DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений double, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default DoubleStream equiDoubles(double left, double right, boolean isLeftIncluded, boolean isRightIncluded)
Возвращает практически неограниченный поток псевдослучайно выбранных значений double, каждое из которых находится между указанной left границей и указанной right границей.
default IntStream ints()
Возвращает практически неограниченный поток псевдослучайно выбранных значений int.
default IntStream ints(int randomNumberOrigin, int randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений int, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default IntStream ints(long streamSize)
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений int.
default IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений int, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default boolean isDeprecated()
Возвращает true, если реализация RandomGenerator (алгоритм) помечена как устаревающая.
default LongStream longs()
Возвращает практически неограниченный поток псевдослучайно выбранных значений long.
default LongStream longs(long streamSize)
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений long.
default LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает практически неограниченный поток псевдослучайно выбранных значений long, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, создающий указанное количество streamSize псевдослучайно выбранных значений long, каждое из которых находится между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default boolean nextBoolean()
Возвращает псевдослучайно выбранное значение boolean.
default void nextBytes(byte[] bytes)
Заполняет предоставленный пользователем массив байтов сгенерированными значениями байтов, псевдослучайно и равномерно выбранными из диапазона от -128 (включительно) до 127 (включительно).
default double nextDouble()
Возвращает псевдослучайное значение double от нуля (включительно) до единицы (исключительно).
default double nextDouble(double bound)
Возвращает псевдослучайно выбранное значение double от нуля (включительно) до указанной верхней границы (исключительно).
default double nextDouble(double origin, double bound)
Возвращает псевдослучайно выбранное значение double между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default double nextExponential()
Возвращает неотрицательное значение double, псевдослучайно выбранное из экспоненциального распределения со средним значением 1.
default float nextFloat()
Возвращает псевдослучайное значение float от нуля (включительно) до единицы (исключительно).
default float nextFloat(float bound)
Возвращает псевдослучайно выбранное значение float от нуля (включительно) до указанной верхней границы (исключительно).
default float nextFloat(float origin, float bound)
Возвращает псевдослучайно выбранное значение float между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
default double nextGaussian()
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением 0 и стандартным отклонением 1.
default double nextGaussian(double mean, double stddev)
Возвращает значение double, псевдослучайно выбранное из гауссовского (нормального) распределения со средним значением и стандартным отклонением, заданными аргументами.
default int nextInt()
Возвращает псевдослучайно выбранное значение int.
default int nextInt(int bound)
Возвращает псевдослучайно выбранное значение int от нуля (включительно) до указанной верхней границы (исключительно).
default int nextInt(int origin, int bound)
Возвращает псевдослучайно выбранное значение int между указанной нижней границей (включительно) и указанной верхней границей (исключительно).
long nextLong()
Возвращает псевдослучайно выбранное значение long.
default long nextLong(long bound)
Возвращает псевдослучайно выбранное значение long от нуля (включительно) до указанной верхней границы (исключительно).
default long nextLong(long origin, long bound)
Возвращает псевдослучайно выбранное значение long между указанной нижней границей (включительно) и указанной верхней границей (исключительно).

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

of

static RandomGenerator.SplittableGenerator of(String name)
Возвращает экземпляр RandomGenerator.SplittableGenerator, использующий алгоритм 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 меньше нуля

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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