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