Spec-Zone.ru › OpenJDK 24

Класс SplittableRandom

java.lang.Object
java.util.SplittableRandom
Все реализованные интерфейсы:
RandomGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
public final class SplittableRandom extends Object implements RandomGenerator, RandomGenerator.SplittableGenerator
Генератор равномерных псевдослучайных значений (с периодом 264), применимый для использования в (среди прочего) изолированных параллельных вычислениях, которые могут генерировать подзадачи. Класс SplittableRandom поддерживает методы для создания псевдослучайных чисел типа int, long и double с использованием, аналогичным классу Random, но отличается следующим:
  • Последовательность сгенерированных значений проходит тесты на независимость и равномерность генераторов псевдослучайных чисел по набору DieHarder. (Последнее подтверждение с версией 3.31.1.) Эти тесты проверяют только методы для определенных типов и диапазонов, но аналогичные свойства, по крайней мере приблизительно, ожидаются и для других. Период (длина любой последовательности сгенерированных значений до повторения) составляет 264.
  • Метод split() создаёт и возвращает новый экземпляр SplittableRandom, не разделяющий изменяемое состояние с текущим экземпляром. Однако с очень высокой вероятностью значения, сгенерированные двумя объектами, имеют те же статистические свойства, что и если бы то же количество значений было сгенерировано одной нитью с использованием одного объекта SplittableRandom.
  • Экземпляры SplittableRandom не потокобезопасны. Они предназначены для разделения, а не совместного использования, между потоками. Например, вычисление fork/join-style с использованием случайных чисел может включать конструкцию в форме new Subtask(aSplittableRandom.split()).fork().
  • Этот класс предоставляет дополнительные методы для генерации потоков случайных чисел, которые используют вышеупомянутые методы при использовании в режиме stream.parallel().

Экземпляры SplittableRandom не являются криптографически безопасными. Вместо этого используйте SecureRandom в приложениях, требующих криптографической безопасности. Кроме того, экземпляры, созданные по умолчанию, не используют криптографически случайное семя, если системная переменная java.util.secureRandomSeed не установлена в значение true.

С:
1.8

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

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

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

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

Конструктор Описание
SplittableRandom()
Создаёт новый экземпляр SplittableRandom, который, вероятно, сгенерирует последовательности значений, статистически независимые от последовательностей любых других экземпляров в текущей программе; и может, и обычно отличается от вызовов программы к программе.
SplittableRandom(long seed)
Создаёт новый экземпляр SplittableRandom, используя указанное начальное семя.

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

Модификатор и тип Метод Описание
DoubleStream doubles()
Возвращает эффективно неограниченный поток псевдослучайных значений double от этого генератора и/или одного разделенного от него; каждое значение находится между нулём (включительно) и единицей (исключительно).
DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных значений double от этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
DoubleStream doubles(long streamSize)
Возвращает поток, генерирующий заданное число streamSize псевдослучайных значений double от этого генератора и/или одного разделенного от него; каждое значение находится между нулём (включительно) и единицей (исключительно).
DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Возвращает поток, генерирующий заданное число streamSize псевдослучайных значений double от этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
IntStream ints()
Возвращает эффективно неограниченный поток псевдослучайных значений int от этого генератора и/или одного разделенного от него.
IntStream ints(int randomNumberOrigin, int randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных значений int от этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
IntStream ints(long streamSize)
Возвращает поток, генерирующий заданное число streamSize псевдослучайных значений int от этого генератора и/или одного разделенного от него.
IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, генерирующий заданное число streamSize псевдослучайных значений int от этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
LongStream longs()
Возвращает эффективно неограниченный поток псевдослучайных значений long от этого генератора и/или одного разделенного от него.
LongStream longs(long streamSize)
Возвращает поток, генерирующий заданное число streamSize псевдослучайных значений long от этого генератора и/или одного разделенного от него.
LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных значений long от этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, генерирующий заданное число streamSize псевдослучайных значений long от этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
void nextBytes(byte[] bytes)
Заполняет предоставленный массив байтов сгенерированными байтовыми значениями, случайно выбранными равномерно из диапазона значений от -128 (включительно) до 127 (включительно).
long nextLong()
Возвращает псевдослучайно выбранное значение long.
SplittableRandom split()
Создаёт и возвращает новый экземпляр SplittableRandom, не разделяющий изменяемое состояние с этим экземпляром.
SplittableRandom split(RandomGenerator.SplittableGenerator source)
Возвращает новый генератор псевдослучайных чисел, отделив его от текущего, реализующего интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator.
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.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

equiDoubles, isDeprecated, nextBoolean, nextDouble, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextFloat, nextGaussian, nextGaussian, nextInt, nextInt, nextInt, nextLong, nextLong

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

rngs, rngs
END_OF_DOCUMENT_MARKER

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

SplittableRandom

public SplittableRandom(long seed)
Создает новый экземпляр SplittableRandom с использованием указанного начального семени. Экземпляры SplittableRandom, созданные с тем же семенем в одной и той же программе, генерируют идентичные последовательности значений.
Параметры:
seed - начальное семя

SplittableRandom

public SplittableRandom()
Создает новый экземпляр SplittableRandom, который, вероятно, будет генерировать последовательности значений, статистически независимые от последовательностей любых других экземпляров в текущей программе; и может, и обычно изменяется при вызовах программы.

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

split

public SplittableRandom split()
Конструирует и возвращает новый экземпляр SplittableRandom, который не имеет общего изменяемого состояния с этим экземпляром. Однако, с очень высокой вероятностью, множество значений, которые коллективно генерируются двумя объектами, имеет те же статистические свойства, как если бы то же количество значений было сгенерировано одним потоком с использованием одного объекта SplittableRandom. Любой или оба из двух объектов могут быть дополнительно разделены с использованием метода split(), и те же ожидаемые статистические свойства применяются ко всему множеству генераторов, созданных таким рекурсивным разделением.
Указано в:
split в интерфейсе RandomGenerator.SplittableGenerator
Возвращает:
новый экземпляр SplittableRandom

split

public SplittableRandom split(RandomGenerator.SplittableGenerator source)
Возвращает новый генератор псевдослучайных чисел, отделенный от этого, который реализует интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator.
Указано в:
split в интерфейсе RandomGenerator.SplittableGenerator
Параметры:
source - экземпляр RandomGenerator.SplittableGenerator, который будет использоваться вместо этого в качестве источника псевдослучайных битов, используемых для инициализации состояния новых.
Возвращает:
объект, который реализует интерфейсы RandomGenerator и RandomGenerator.SplittableGenerator
Исключения:
NullPointerException - если source равен null
С версии:
17

nextLong

public long nextLong()
Описание скопировано из интерфейса: RandomGenerator
Возвращает псевдослучайно выбранное значение long.
Указано в:
nextLong в интерфейсе RandomGenerator
Возвращает:
псевдослучайно выбранное значение long

nextBytes

public void nextBytes(byte[] bytes)
Заполняет предоставленный пользователем массив байтов сгенерированными значениями байтов, псевдослучайно выбранными равномерно из диапазона значений от -128 (включительно) до 127 (включительно).
Указано в:
nextBytes в интерфейсе RandomGenerator
Параметры:
bytes - массив байтов для заполнения псевдослучайными байтами
Исключения:
NullPointerException - если bytes равен null
С версии:
10

splits

public Stream<RandomGenerator.SplittableGenerator> splits()
Возвращает эффективно неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.

Этот генератор псевдослучайных чисел может использоваться в качестве источника псевдослучайных битов, используемых для инициализации состояния новых.

Указано в:
splits в интерфейсе RandomGenerator.SplittableGenerator
Требования к реализации:
Реализация по умолчанию вызывает splits(this).
Возвращает:
поток объектов RandomGenerator.SplittableGenerator
С версии:
17

splits

public Stream<RandomGenerator.SplittableGenerator> splits(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.

Этот генератор псевдослучайных чисел может использоваться в качестве источника псевдослучайных битов, используемых для инициализации состояния новых.

Указано в:
splits в интерфейсе RandomGenerator.SplittableGenerator
Требования к реализации:
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток объектов RandomGenerator.SplittableGenerator
Исключения:
IllegalArgumentException - если streamSize меньше нуля
С версии:
17

splits

public Stream<RandomGenerator.SplittableGenerator> splits(RandomGenerator.SplittableGenerator source)
Возвращает эффективно неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.
Указано в:
splits в интерфейсе RandomGenerator.SplittableGenerator
Требования к реализации:
Параметры:
source - экземпляр RandomGenerator.SplittableGenerator, который будет использоваться вместо этого в качестве источника псевдослучайных битов, используемых для инициализации состояния новых.
Возвращает:
поток объектов RandomGenerator.SplittableGenerator
Исключения:
NullPointerException - если source равен null
С версии:
17

splits

public Stream<RandomGenerator.SplittableGenerator> splits(long streamSize, RandomGenerator.SplittableGenerator source)
Возвращает поток, генерирующий заданное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator.
Указано в:
splits в интерфейсе RandomGenerator.SplittableGenerator
Требования к реализации:
Параметры:
streamSize - количество значений для генерации
source - экземпляр RandomGenerator.SplittableGenerator, который будет использоваться вместо этого в качестве источника псевдослучайных битов, используемых для инициализации состояния новых.
Возвращает:
поток объектов RandomGenerator.SplittableGenerator
Исключения:
NullPointerException - если source равен null
IllegalArgumentException - если streamSize меньше нуля
С версии:
17

ints

public IntStream ints(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных значений int из этого генератора и/или одного, разделенного от него.
Указано в:
ints в интерфейсе RandomGenerator
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток псевдослучайных значений int
Исключения:
IllegalArgumentException - если streamSize меньше нуля

ints

public IntStream ints()
Возвращает эффективно неограниченный поток псевдослучайных значений int из этого генератора и/или одного, разделенного от него.
Указано в:
ints в интерфейсе RandomGenerator
Примечание к реализации:
Этот метод реализован как эквивалент ints(Long.MAX_VALUE).
Возвращает:
поток псевдослучайных значений int

ints

public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных значений int из этого генератора и/или одного, разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
Указано в:
ints в интерфейсе RandomGenerator
Параметры:
streamSize - количество значений для генерации
randomNumberOrigin - начало (включительно) каждого случайного значения
randomNumberBound - граница (исключительно) каждого случайного значения
Возвращает:
поток псевдослучайных значений int, каждое со заданным началом (включительно) и границей (исключительно)
Исключения:
IllegalArgumentException - если streamSize меньше нуля, или randomNumberOrigin больше или равно randomNumberBound

ints

public IntStream ints(int randomNumberOrigin, int randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных int значений из этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
Указано в:
ints в интерфейсе RandomGenerator
Замечание по реализации:
Этот метод реализован как эквивалентный ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin - начало (включительно) каждого случайного значения
randomNumberBound - граница (исключительно) каждого случайного значения
Возвращает:
поток псевдослучайных int значений, каждое из которых имеет заданное начало (включительно) и границу (исключительно)
Исключение:
IllegalArgumentException - если randomNumberOrigin больше или равно randomNumberBound

longs

public LongStream longs(long streamSize)
Возвращает поток, генерирующий заданное streamSize количество псевдослучайных long значений из этого генератора и/или одного разделенного от него.
Указано в:
longs в интерфейсе RandomGenerator
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток псевдослучайных long значений
Исключение:
IllegalArgumentException - если streamSize меньше нуля

longs

public LongStream longs()
Возвращает эффективно неограниченный поток псевдослучайных long значений из этого генератора и/или одного разделенного от него.
Указано в:
longs в интерфейсе RandomGenerator
Замечание по реализации:
Этот метод реализован как эквивалентный longs(Long.MAX_VALUE).
Возвращает:
поток псевдослучайных long значений

longs

public LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, генерирующий заданное streamSize количество псевдослучайных long значений из этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
Указано в:
longs в интерфейсе RandomGenerator
Параметры:
streamSize - количество значений для генерации
randomNumberOrigin - начало (включительно) каждого случайного значения
randomNumberBound - граница (исключительно) каждого случайного значения
Возвращает:
поток псевдослучайных long значений, каждое из которых имеет заданное начало (включительно) и границу (исключительно)
Исключение:
IllegalArgumentException - если streamSize меньше нуля, или randomNumberOrigin больше или равно randomNumberBound

longs

public LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных long значений из этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
Указано в:
longs в интерфейсе RandomGenerator
Замечание по реализации:
Этот метод реализован как эквивалентный longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin - начало (включительно) каждого случайного значения
randomNumberBound - граница (исключительно) каждого случайного значения
Возвращает:
поток псевдослучайных long значений, каждое из которых имеет заданное начало (включительно) и границу (исключительно)
Исключение:
IllegalArgumentException - если randomNumberOrigin больше или равно randomNumberBound

doubles

public DoubleStream doubles(long streamSize)
Возвращает поток, генерирующий заданное streamSize количество псевдослучайных double значений из этого генератора и/или одного разделенного от него; каждое значение находится между нулем (включительно) и единицей (исключительно).
Указано в:
doubles в интерфейсе RandomGenerator
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток double значений
Исключение:
IllegalArgumentException - если streamSize меньше нуля

doubles

public DoubleStream doubles()
Возвращает эффективно неограниченный поток псевдослучайных double значений из этого генератора и/или одного разделенного от него; каждое значение находится между нулем (включительно) и единицей (исключительно).
Указано в:
doubles в интерфейсе RandomGenerator
Замечание по реализации:
Этот метод реализован как эквивалентный doubles(Long.MAX_VALUE).
Возвращает:
поток псевдослучайных double значений

doubles

public DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Возвращает поток, генерирующий заданное streamSize количество псевдослучайных double значений из этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
Указано в:
doubles в интерфейсе RandomGenerator
Параметры:
streamSize - количество значений для генерации
randomNumberOrigin - начало (включительно) каждого случайного значения
randomNumberBound - граница (исключительно) каждого случайного значения
Возвращает:
поток псевдослучайных double значений, каждое из которых имеет заданное начало (включительно) и границу (исключительно)
Исключение:
IllegalArgumentException - если streamSize меньше нуля, или randomNumberOrigin не является конечным, или randomNumberBound не является конечным, или randomNumberOrigin больше или равно randomNumberBound

doubles

public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных double значений из этого генератора и/или одного разделенного от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).
Указано в:
doubles в интерфейсе RandomGenerator
Замечание по реализации:
Этот метод реализован как эквивалентный doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin - начало (включительно) каждого случайного значения
randomNumberBound - граница (исключительно) каждого случайного значения
Возвращает:
поток псевдослучайных double значений, каждое из которых имеет заданное начало (включительно) и границу (исключительно)
Исключение:
IllegalArgumentException - если randomNumberOrigin не является конечным, или randomNumberBound не является конечным, или randomNumberOrigin больше или равно randomNumberBound

© 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/SplittableRandom.html

Spec-Zone.ru

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