Spec-Zone.ru › OpenJDK 17

Класс RandomGeneratorFactory<T extends RandomGenerator>

java.lang.Object
java.util.random.RandomGeneratorFactory<T>
public final class RandomGeneratorFactory<T extends RandomGenerator> extends Object
Это фабричный класс для генерации нескольких генераторов случайных чисел определенного алгоритма. RandomGeneratorFactory также предоставляет методы для выбора алгоритмов генерации случайных чисел. Конкретный RandomGeneratorFactory можно найти, используя метод of(String), где строковый аргумент — имя требуемого алгоритма. Метод all() генерирует непустой Stream всех доступных RandomGeneratorFactorys, который можно просмотреть для поиска RandomGeneratorFactory, подходящего для задачи. Существует три метода для создания экземпляра RandomGenerator, в зависимости от требуемого типа начального значения. create(long) используется для создания значения с типом long, create(byte[]) используется для создания значения с типом byte[], и create() используется для создания случайного значения. Пример;

    RandomGeneratorFactory<RandomGenerator> factory = RandomGeneratorFactory.of("Random");

     for (int i = 0; i < 10; i++) {
         new Thread(() -> {
             RandomGenerator random = factory.create(100L);
             System.out.println(random.nextDouble());
         }).start();
     }
 
RandomGeneratorFactory также предоставляет методы, описывающие атрибуты (или свойства) генератора, и может использоваться для выбора алгоритмов генерации случайных чисел. Эти методы обычно используются совместно с all(). В этом примере код находит RandomGeneratorFactory, который производит RandomGenerators с наибольшим количеством битов состояния.

     RandomGeneratorFactory<RandomGenerator> best = RandomGeneratorFactory.all()
         .sorted(Comparator.comparingInt(RandomGenerator::stateBits).reversed())
         .findFirst()
         .orElse(RandomGeneratorFactory.of("Random"));
     System.out.println(best.name() + " in " + best.group() + " was selected");

     RandomGenerator rng = best.create();
     System.out.println(rng.nextLong());
 
С:
17
См. также:
  • java.util.random

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

Модификатор и тип Метод Описание
static Stream<RandomGeneratorFactory<RandomGenerator>> all()
Возвращает непустой поток доступных RandomGeneratorFactory(s).
T create()
Создает экземпляр RandomGenerator на основе выбранного алгоритма.
T create(byte[] seed)
Создает экземпляр RandomGenerator на основе выбранного алгоритма, предоставляя начальное значение byte[].
T create(long seed)
Создает экземпляр RandomGenerator на основе выбранного алгоритма, предоставляя начальное значение long.
int equidistribution()
Возвращает равнораспределение алгоритма.
static RandomGeneratorFactory<RandomGenerator> getDefault()
Возвращает RandomGeneratorFactory, удовлетворяющий минимальному требованию иметь алгоритм, у которого биты состояния не меньше 64.
String group()
Возвращает имя группы, используемого алгоритма генератора случайных чисел.
boolean isArbitrarilyJumpable()
Возвращает true, если генератор случайных чисел может перейти к произвольно заданной точке в цикле состояния.
boolean isDeprecated()
Возвращает true, если реализация RandomGenerator (алгоритм) помечена для устаревания.
boolean isHardware()
Возвращает true, если генератор случайных чисел использует аппаратное устройство (HRNG) для получения энтропийного входного сигнала.
boolean isJumpable()
Возвращает true, если генератор случайных чисел может перейти к заданной точке в цикле состояния.
boolean isLeapable()
Возвращает true, если генератор случайных чисел может перейти к очень удалённой точке в цикле состояния.
boolean isSplittable()
Возвращает true, если генератор случайных чисел может быть клонирован в отдельный объект с теми же свойствами, но расположенный дальше в цикле состояния.
boolean isStatistical()
Возвращает true, если генератор случайных чисел вычисляется с использованием арифметического алгоритма и является статистически детерминированным.
boolean isStochastic()
Возвращает true, если генератор случайных чисел вычисляется с использованием внешних или энтропийных источников в качестве входных данных.
boolean isStreamable()
Возвращает true, если генератор случайных чисел может использоваться для создания Streams случайных чисел.
String name()
Возвращает имя используемого алгоритма генератора случайных чисел.
static <T extends RandomGenerator>
RandomGeneratorFactory<T>
of(String name)
Возвращает RandomGeneratorFactory, который может создавать экземпляры RandomGenerator, использующие name алгоритм.
BigInteger period()
Возвращает период используемого алгоритма генератора случайных чисел.
int stateBits()
Возвращает количество битов, используемых алгоритмом для поддержания состояния seed.

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

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

Методы

of

public static <T extends RandomGenerator> RandomGeneratorFactory<T> of(String name)
Возвращает RandomGeneratorFactory, который может генерировать экземпляры RandomGenerator, использующие алгоритм name алгоритм.
Требования к реализации:
Доступность определяется RandomGeneratorFactory с использованием API поставщика услуг для поиска реализаций интерфейса RandomGenerator.
Параметры типа:
T - Подинтерфейс RandomGenerator для генерации
Параметры:
name - Название алгоритма генератора псевдослучайных чисел алгоритм
Возвращает:
RandomGeneratorFactory RandomGenerator
Исключения:
NullPointerException - если имя null
IllegalArgumentException - если алгоритм с заданным именем не найден

getDefault

public static RandomGeneratorFactory<RandomGenerator> getDefault()
Возвращает RandomGeneratorFactory, удовлетворяющий минимальному требованию наличия алгоритма, биты состояния которого больше или равны 64.
Требования к реализации:
Так как алгоритмы будут совершенствоваться со временем, нет гарантии, что этот метод будет возвращать тот же алгоритм со временем.
Возвращает:
RandomGeneratorFactory

all

public static Stream<RandomGeneratorFactory<RandomGenerator>> all()
Возвращает непустой поток доступных RandomGeneratorFactory(s). Генераторы случайных чисел, помеченные как устаревшие, не включаются в результат.
Требования к реализации:
Доступность определяется RandomGeneratorFactory с использованием API поставщика услуг для поиска реализаций интерфейса RandomGenerator.
Возвращает:
непустой поток всех доступных RandomGeneratorFactory(s).

name

public String name()
Возвращает имя алгоритма, используемого генератором псевдослучайных чисел.
Возвращает:
Имя алгоритма.

group

public String group()
Возвращает имя группы алгоритма, используемого генератором псевдослучайных чисел.
Возвращает:
Имя группы алгоритма.

stateBits

public int stateBits()
Возвращает количество бит, используемых алгоритмом для поддержания состояния семян.
Возвращает:
количество бит, используемых алгоритмом для поддержания состояния семян.

equidistribution

public int equidistribution()
Возвращает равномерное распределение алгоритма.
Возвращает:
равномерное распределение алгоритма.

period

public BigInteger period()
Возвращает период алгоритма, используемого генератором псевдослучайных чисел. Возвращает BigInteger.ZERO, если период не может быть определен.
Возвращает:
BigInteger период.

isStatistical

public boolean isStatistical()
Возвращает true, если генератор случайных чисел вычисляется с использованием арифметического алгоритма и статистически детерминирован.
Возвращает:
true, если генератор случайных чисел статистический.

isStochastic

public boolean isStochastic()
Возвращает true, если генератор случайных чисел вычисляется с использованием внешних или энтропийных источников в качестве входных данных.
Возвращает:
true, если генератор случайных чисел стохастический.

isHardware

public boolean isHardware()
Возвращает true, если генератор случайных чисел использует аппаратное устройство (HRNG) для получения энтропийного входного сигнала.
Возвращает:
true, если генератор случайных чисел генерируется аппаратным обеспечением.

isArbitrarilyJumpable

public boolean isArbitrarilyJumpable()
Возвращает true, если генератор случайных чисел может перейти в произвольно заданную удалённую точку в цикле состояния.
Возвращает:
true, если генератор случайных чисел допускает произвольный переход.

isJumpable

public boolean isJumpable()
Возвращает true, если генератор случайных чисел может перейти в заданную удалённую точку в цикле состояния.
Возвращает:
true, если генератор случайных чисел допускает переход.

isLeapable

public boolean isLeapable()
Возвращает true, если генератор случайных чисел допускает переход и может перейти в очень удалённую точку в цикле состояния.
Возвращает:
true, если генератор случайных чисел допускает скачок.

isSplittable

public boolean isSplittable()
Возвращает true, если генератор случайных чисел может быть клонирован в отдельный объект с такими же свойствами, но расположенный дальше в цикле состояния.
Возвращает:
true, если генератор случайных чисел допускает разделение.

isStreamable

public boolean isStreamable()
Возвращает true, если генератор случайных чисел может быть использован для создания Streams случайных чисел.
Возвращает:
true, если генератор случайных чисел поддерживает потоковую обработку.

isDeprecated

public boolean isDeprecated()
Возвращает true, если реализация RandomGenerator (алгоритм) помечена для устаревания.
Примечание к реализации:
Алгоритмы генерации псевдослучайных чисел развиваются со временем; будут введены новые алгоритмы, а старые потеряют актуальность. Если более старый алгоритм считается непригодным для дальнейшего использования, он будет помечен как устаревший, чтобы указать, что он может быть удален в какой-то момент в будущем.
Возвращает:
true, если реализация RandomGenerator (алгоритм) помечена для устаревания

create

public T create()
Создает экземпляр RandomGenerator на основе выбранного алгоритма.
Возвращает:
новый экземпляр RandomGenerator.

create

public T create(long seed)
Создает экземпляр RandomGenerator на основе выбранного алгоритма, предоставляя начальное значение seed типа long. Если алгоритм не поддерживает seed типа long, используется форма create без аргументов.
Параметры:
seed - начальное значение seed типа long.
Возвращает:
новый экземпляр RandomGenerator.

create

public T create(byte[] seed)
Создает экземпляр RandomGenerator на основе выбранного алгоритма, предоставляя начальное значение seed типа byte[]. Если алгоритм не поддерживает seed типа byte[], используется форма create без аргументов.
Параметры:
seed - начальное значение seed типа byte[].
Возвращает:
новый экземпляр RandomGenerator.
Исключения:
NullPointerException - если seed равно null.

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

Spec-Zone.ru

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