Класс 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<RandomGenerator.SplittableGenerator> |
splits() |
Возвращает эффективно неограниченный поток новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Stream<RandomGenerator.SplittableGenerator> |
splits |
Возвращает поток, генерирующий заданное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Stream<RandomGenerator.SplittableGenerator> |
splits |
Возвращает поток, генерирующий заданное количество streamSize новых генераторов псевдослучайных чисел, каждый из которых реализует интерфейс RandomGenerator.SplittableGenerator. |
Stream<RandomGenerator.SplittableGenerator> |
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
doubles
public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
double значений из этого генератора и/или одного из разделенных от него; каждое значение соответствует заданному началу (включительно) и границе (исключительно).- Указано:
-
doublesв интерфейсеRandomGenerator - Примечание реализации:
- Этот метод реализован так, чтобы быть эквивалентным
doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound). - Параметры:
-
randomNumberOrigin- начало (включительно) каждого случайного значения -
randomNumberBound- граница (исключительно) каждого случайного значения - Возвращает:
- поток псевдослучайных
doubleзначений, каждое из которых имеет заданное начало (включительно) и границу (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиrandomNumberOriginбольше или равноrandomNumberBound
© 1993, 2021, 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/17/docs/api/java.base/java/util/SplittableRandom.html