Класс 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
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- начальное 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, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/SplittableRandom.html