Spec-Zone.ru › OpenJDK 17

Интерфейс RandomGenerator

Все известные подинтерфейсы:
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
Все известные реализующие классы:
Random, SecureRandom, SplittableRandom, ThreadLocalRandom
public interface RandomGenerator
Интерфейс RandomGenerator предназначен для обеспечения общего протокола для объектов, генерирующих случайные или (в большинстве случаев) псевдослучайные последовательности чисел (или значений Boolean). Такую последовательность можно получить, либо повторно вызывая метод, возвращающий одно псевдослучайное значение, либо вызывая метод, возвращающий поток псевдослучайных значений.

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

В случае значений типа int, long, и boolean, если диапазон не задан явно, то диапазон включает все возможные значения типа. В случае значений типа float и double сначала всегда выбирается значение равномерно из множества 2w значений между 0.0 (включительно) и 1.0 (исключительно), где w равно 23 для значений типа float и 52 для значений типа double, таким образом, соседние значения отличаются на 2−w (обратите внимание, что это множество является подмножеством множества всех представляемых значений с плавающей запятой между 0.0 (включительно) и 1.0 (исключительно)); затем, если явно задан диапазон, выбранное число вычисляется путем масштабирования и сдвига таким образом, чтобы оно выглядело примерно равномерно выбранным из этого явного диапазона.

Каждый метод, возвращающий поток, генерирует поток значений, каждый из которых выбирается таким же образом, как и для метода, возвращающего одно псевдослучайное значение. Например, если r реализует RandomGenerator, то вызов метода r.ints(100) возвращает поток из 100 значений int. Эти значения не обязательно будут точно такими же, как если бы r.nextInt() был вызван 100 раз; гарантируется только, что каждое значение в потоке выбирается аналогичным псевдослучайным способом из того же диапазона.

Предполагается, что каждый объект, реализующий интерфейс RandomGenerator с помощью псевдослучайного алгоритма, содержит конечное количество состояния. Использование такого объекта для генерации псевдослучайного значения изменяет его состояние, вычисляя новое состояние как функцию текущего состояния, без ссылки на какую-либо информацию, кроме текущего состояния. Число различных возможных состояний такого объекта называется его периодом. (Некоторые реализации интерфейса RandomGenerator могут быть истинно случайными, а не псевдослучайными, например, полагаясь на статистическое поведение физического объекта для получения выбранных значений. Такие реализации не имеют фиксированного периода.)

Как правило, объекты, реализующие интерфейс RandomGenerator, не требуют потокобезопасности. Рекомендуется, чтобы многопоточные приложения использовали либо ThreadLocalRandom, или (предпочтительно) генераторы псевдослучайных чисел, реализующие интерфейс RandomGenerator.SplittableGenerator или RandomGenerator.JumpableGenerator.

Объекты, реализующие RandomGenerator, обычно не являются криптографически безопасными. Вместо этого рассмотрите использование SecureRandom для получения криптографически безопасного генератора псевдослучайных чисел для использования в приложениях, чувствительных к безопасности. Обратите внимание, однако, что SecureRandom реализует интерфейс RandomGenerator, поэтому экземпляры SecureRandom можно использовать взаимозаменяемо с другими типами генераторов псевдослучайных чисел в приложениях, не требующих безопасного генератора.

Если не указано иное, использование null в качестве аргумента любого метода вызовет NullPointerException.

С:
17

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

Modifier and Type Interface Description
static interface  RandomGenerator.ArbitrarilyJumpableGenerator
Этот интерфейс предназначен для предоставления общего протокола для объектов, которые генерируют последовательности псевдослучайных значений и могут легко перескочить вперёд на произвольное расстояние до удалённой точки цикла состояния.
static interface  RandomGenerator.JumpableGenerator
Этот интерфейс предназначен для предоставления общего протокола для объектов, которые генерируют псевдослучайные значения и могут легко перескочить вперёд на умеренное расстояние (например, 264) до удалённой точки цикла состояния.
static interface  RandomGenerator.LeapableGenerator
Этот интерфейс предназначен для предоставления общего протокола для объектов, которые генерируют последовательности псевдослучайных значений и могут легко не только перескочить, но и перепрыгнуть вперёд на большое расстояние (например, 2128) до очень удалённой точки цикла состояния.
static interface  RandomGenerator.SplittableGenerator
Этот интерфейс предназначен для предоставления общего протокола для объектов, которые генерируют последовательности псевдослучайных значений и могут быть разделены на два объекта (оригинальный и новый), каждый из которых подчиняется тому же протоколу (и, следовательно, может быть рекурсивно разделён неограниченное количество раз).
static interface  RandomGenerator.StreamableGenerator
Интерфейс RandomGenerator.StreamableGenerator расширяет интерфейс RandomGenerator, предоставляя методы, которые возвращают потоки объектов RandomGenerator.

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

Modifier and Type Method Description
default DoubleStream doubles()
Возвращает эффективно неограниченный поток псевдослучайных double значений.
default DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных double значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно).
default DoubleStream doubles(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений.
default DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно).
static RandomGenerator getDefault()
Возвращает RandomGenerator, удовлетворяющий минимальному требованию наличия алгоритма, состояние бит которого больше или равно 64.
default IntStream ints()
Возвращает эффективно неограниченный поток псевдослучайных int значений.
default IntStream ints(int randomNumberOrigin, int randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных int значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно).
default IntStream ints(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных int значений.
default IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных int значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно).
default boolean isDeprecated()
Возвращает true, если реализация RandomGenerator (алгоритм) помечена для устаревания.
default LongStream longs()
Возвращает эффективно неограниченный поток псевдослучайных long значений.
default LongStream longs(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных long значений.
default LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных long значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно).
default LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных long значений, где каждое значение находится в диапазоне от указанного начала (включительно) до указанного предела (исключительно).
default boolean nextBoolean()
Возвращает псевдослучайное boolean значение.
default void nextBytes(byte[] bytes)
Заполняет предоставленный пользователем массив байтов сгенерированными значениями байтов, псевдослучайно выбранными равномерно из диапазона значений между -128 (включительно) и 127 (включительно).
default double nextDouble()
Возвращает псевдослучайное double значение между нулем (включительно) и единицей (исключительно).
default double nextDouble(double bound)
Возвращает псевдослучайное double значение между нулем (включительно) и указанным пределом (исключительно).
default double nextDouble(double origin, double bound)
Возвращает псевдослучайное double значение между указанным началом (включительно) и указанным пределом (исключительно).
default double nextExponential()
Возвращает неотрицательное double значение, псевдослучайно выбранное из экспоненциального распределения, среднее значение которого равно 1.
default float nextFloat()
Возвращает псевдослучайное float значение между нулем (включительно) и единицей (исключительно).
default float nextFloat(float bound)
Возвращает псевдослучайное значение float между нулём (включительно) и указанным пределом (исключительно).
default float nextFloat(float origin, float bound)
Возвращает псевдослучайное значение float между указанной начальной точкой (включительно) и указанным пределом (исключительно).
default double nextGaussian()
Возвращает значение double, псевдослучайным образом выбранное из гауссова (нормального) распределения со средним значением 0 и стандартным отклонением 1.
default double nextGaussian(double mean, double stddev)
Возвращает значение double, псевдослучайным образом выбранное из гауссова (нормального) распределения со средним значением и стандартным отклонением, указанными в аргументах.
default int nextInt()
Возвращает псевдослучайное значение int.
default int nextInt(int bound)
Возвращает псевдослучайное значение int между нулём (включительно) и указанным пределом (исключительно).
default int nextInt(int origin, int bound)
Возвращает псевдослучайное значение int между указанной начальной точкой (включительно) и указанным пределом (исключительно).
long nextLong()
Возвращает псевдослучайное значение long.
default long nextLong(long bound)
Возвращает псевдослучайное значение long между нулём (включительно) и указанным пределом (исключительно).
default long nextLong(long origin, long bound)
Возвращает псевдослучайное значение long между указанной начальной точкой (включительно) и указанным пределом (исключительно).
static RandomGenerator of(String name)
Возвращает экземпляр RandomGenerator, использующий name алгоритм.

Подробное описание методов

of

static RandomGenerator of(String name)
Возвращает экземпляр RandomGenerator, использующий name алгоритм.
Параметры:
name - Название алгоритма генератора случайных чисел алгоритм
Возвращает:
Экземпляр RandomGenerator
Исключение:
NullPointerException - если имя null
IllegalArgumentException - если алгоритм с данным именем не найден

getDefault

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

Встроенная реализация выбирает L32X64MixRandom.

Возвращает:
a RandomGenerator

isDeprecated

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

doubles

default DoubleStream doubles()
Возвращает эффективно неограниченный поток псевдослучайных double значений.
Требования к реализации:
Встроенная реализация генерирует последовательный поток, многократно вызывая nextDouble().
Примечание реализации:
Разрешается реализовать этот метод аналогично doubles (Long.MAX_VALUE).
Возвращает:
поток псевдослучайных double значений

doubles

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

doubles

default DoubleStream doubles(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений.
Требования к реализации:
Встроенная реализация генерирует последовательный поток, многократно вызывая nextDouble().
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток псевдослучайных double значений
Исключение:
IllegalArgumentException - если streamSize меньше нуля

doubles

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

ints

default IntStream ints()
Возвращает эффективно неограниченный поток псевдослучайных int значений.
Требования к реализации:
Базовая реализация генерирует последовательный поток, многократно вызывая nextInt().
Примечание по реализации:
Разрешается реализовать этот метод способом, эквивалентным ints (Long.MAX_VALUE).
Возвращает:
поток псевдослучайных int значений

ints

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

ints

default IntStream ints(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайных int значений.
Требования к реализации:
Базовая реализация генерирует последовательный поток, многократно вызывая nextInt().
Параметры:
streamSize - количество генерируемых значений
Возвращает:
поток псевдослучайных int значений
Исключение:
IllegalArgumentException - если streamSize меньше нуля

ints

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

longы

default LongStream longs()
Возвращает эффективно неограниченный поток псевдослучайных long значений.
Требования к реализации:
В реализации по умолчанию генерируется последовательный поток, который многократно вызывает nextLong().
Примечание по реализации:
Разрешается реализовать этот метод способом, эквивалентным longs (Long.MAX_VALUE).
Возвращает:
поток псевдослучайных long значений

longы

default LongStream longs(long randomNumberOrigin, long randomNumberBound)
Возвращает эффективно неограниченный поток псевдослучайных long значений, где каждое значение находится между указанным началом (включительно) и указанным пределом (исключительно).
Требования к реализации:
В реализации по умолчанию генерируется последовательный поток, который многократно вызывает nextLong(randomNumberOrigin, randomNumberBound).
Примечание по реализации:
Разрешается реализовать этот метод способом, эквивалентным longs (Long.MAX_VALUE, randomNumberOrigin, randomNumberBound).
Параметры:
randomNumberOrigin - наименьшее значение, которое может быть сгенерировано
randomNumberBound - верхняя граница (исключительно) для каждого генерируемого значения
Возвращает:
поток псевдослучайных long значений, каждое из которых находится между указанным началом (включительно) и указанным пределом (исключительно)
Выбрасывает:
IllegalArgumentException - если randomNumberOrigin больше или равно randomNumberBound

longы

default LongStream longs(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных long значений.
Требования к реализации:
В реализации по умолчанию генерируется последовательный поток, который многократно вызывает nextLong().
Параметры:
streamSize - количество значений для генерации
Возвращает:
поток псевдослучайных long значений
Выбрасывает:
IllegalArgumentException - если streamSize меньше нуля

longы

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

nextBoolean

default boolean nextBoolean()
Возвращает псевдослучайное boolean значение.

Реализация по умолчанию проверяет старший бит (знаковый бит) значения, полученного от nextInt(), так как в некоторых алгоритмах генерации псевдослучайных чисел старшие биты обладают лучшим статистическим качеством по сравнению с младшими.

Требования к реализации:
Реализация по умолчанию генерирует результат на основе знакового бита числа, сгенерированного с помощью nextInt().
Возвращает:
псевдослучайное boolean значение

nextBytes

default void nextBytes(byte[] bytes)
Заполняет предоставленный массив байтов сгенерированными случайными байтами, равномерно выбранными из диапазона от -128 (включительно) до 127 (включительно).
Требования к реализации:
Реализация по умолчанию генерирует результаты на основе многократного вызова nextLong().
Примечание по реализации:
Используемый алгоритм заполнения массива байтов;

           void nextBytes(byte[] bytes) {
               int i = 0;
               int len = bytes.length;
               for (int words = len >> 3; words--> 0; ) {
                   long rnd = nextLong();
                   for (int n = 8; n--> 0; rnd >>>= Byte.SIZE)
                       bytes[i++] = (byte)rnd;
               }
               if (i < len)
                   for (long rnd = nextLong(); i < len; rnd >>>= Byte.SIZE)
                       bytes[i++] = (byte)rnd;
           }
Параметры:
bytes - массив байтов, который нужно заполнить псевдослучайными байтами
Выбрасывает:
NullPointerException - если bytes равно null

nextFloat

default float nextFloat()
Возвращает псевдослучайное float значение между нулём (включительно) и единицей (исключительно).
Требования к реализации:
По умолчанию используется 24 старших бита из вызова nextInt().
Возвращает:
псевдослучайное float значение между нулём (включительно) и единицей (исключительно)

nextFloat

default float nextFloat(float bound)
Возвращает случайное float значение между нулём (включительно) и заданным пределом (исключительно).
Требования к реализации:
По умолчанию проверяется, что bound является положительным конечным значением с плавающей запятой. Затем вызывается nextFloat(), масштабируя результат так, чтобы окончательный результат находился между 0.0f (включительно) и bound (исключительно).
Параметры:
bound - верхний предел (исключительно) для возвращаемого значения. Должно быть положительным и конечным
Возвращает:
случайное float значение между нулём (включительно) и пределом (исключительно)
Исключения:
IllegalArgumentException - если bound не является положительным и конечным

nextFloat

default float nextFloat(float origin, float bound)
Возвращает случайное float значение между заданным начальным значением (включительно) и заданным пределом (исключительно).
Требования к реализации:
По умолчанию проверяется, что origin и bound являются положительными конечными значениями с плавающей запятой. Затем вызывается nextFloat(), масштабируя и сдвигая результат так, чтобы окончательный результат находился между origin (включительно) и bound (исключительно).
Параметры:
origin - наименьшее значение, которое может быть возвращено
bound - верхний предел (исключительно)
Возвращает:
случайное float значение между начальным значением (включительно) и пределом (исключительно)
Исключения:
IllegalArgumentException - если origin не является конечным, или bound не является конечным, или origin больше или равно bound

nextDouble

default double nextDouble()
Возвращает псевдослучайное double значение между нулём (включительно) и единицей (исключительно).
Требования к реализации:
По умолчанию используются 53 старших бита из вызова nextLong().
Возвращает:
псевдослучайное double значение между нулём (включительно) и единицей (исключительно)

nextDouble

default double nextDouble(double bound)
Возвращает случайное double значение между нулём (включительно) и заданным пределом (исключительно).
Требования к реализации:
По умолчанию проверяется, что bound является положительным конечным значением с двойной точностью. Затем вызывается nextDouble(), масштабируя результат так, чтобы окончательный результат находился между 0.0 (включительно) и bound (исключительно).
Параметры:
bound - верхний предел (исключительно) для возвращаемого значения. Должно быть положительным и конечным
Возвращает:
случайное double значение между нулём (включительно) и пределом (исключительно)
Исключения:
IllegalArgumentException - если bound не является положительным и конечным

nextDouble

default double nextDouble(double origin, double bound)
Возвращает случайное double значение между заданным начальным значением (включительно) и заданным пределом (исключительно).
Требования к реализации:
По умолчанию проверяется, что origin и bound являются положительными конечными значениями с двойной точностью. Затем вызывается nextDouble(), масштабируя и сдвигая результат так, чтобы окончательный результат находился между origin (включительно) и bound (исключительно).
Параметры:
origin - наименьшее значение, которое может быть возвращено
bound - верхний предел (исключительно) для возвращаемого значения
Возвращает:
случайное double значение между начальным значением (включительно) и пределом (исключительно)
Исключения:
IllegalArgumentException - если origin не является конечным, или bound не является конечным, или origin больше или равно bound

nextInt

default int nextInt()
Возвращает псевдослучайное int значение.
Требования к реализации:
В реализации по умолчанию используются 32 старших бита из результата вызова nextLong().
Возвращает:
псевдослучайное int значение

nextInt

default int nextInt(int bound)
Возвращает псевдослучайное int значение между нулём (включительно) и указанным пределом (исключительно).
Требования к реализации:
В реализации по умолчанию проверяется, что bound является положительным int. Затем вызывается nextInt(), ограничивая результат значениями больше или равными нулю и меньше bound. Если bound является степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызова nextInt() до тех пор, пока результат не будет больше или равен нулю и меньше bound.
Параметры:
bound - верхний предел (исключительно) для возвращаемого значения. Должен быть положительным.
Возвращает:
псевдослучайное int значение между нулём (включительно) и пределом (исключительно)
Исключение:
IllegalArgumentException - если bound не является положительным

nextInt

default int nextInt(int origin, int bound)
Возвращает псевдослучайное int значение между указанным начальным значением (включительно) и указанным пределом (исключительно).
Требования к реализации:
В реализации по умолчанию проверяется, что origin и bound являются положительными ints. Затем вызывается nextInt(), ограничивая результат значениями больше или равными origin и меньше bound. Если bound является степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызова nextInt() до тех пор, пока результат не будет больше или равен origin и меньше bound.
Параметры:
origin - наименьшее возвращаемое значение
bound - верхний предел (исключительно) для возвращаемого значения
Возвращает:
псевдослучайное int значение между начальным значением (включительно) и пределом (исключительно)
Исключение:
IllegalArgumentException - если origin больше или равно bound

nextLong

long nextLong()
Возвращает псевдослучайное long значение.
Возвращает:
псевдослучайное long значение

nextLong

default long nextLong(long bound)
Возвращает псевдослучайное long значение между нулём (включительно) и указанным пределом (исключительно).
Требования к реализации:
В реализации по умолчанию проверяется, что bound является положительным long. Затем вызывается nextLong(), ограничивая результат значениями больше или равными нулю и меньше bound. Если bound является степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызова nextLong() до тех пор, пока результат не будет больше или равен нулю и меньше bound.
Параметры:
bound - верхний предел (исключительно) для возвращаемого значения. Должен быть положительным.
Возвращает:
псевдослучайное long значение между нулём (включительно) и пределом (исключительно)
Исключение:
IllegalArgumentException - если bound не является положительным

nextLong

default long nextLong(long origin, long bound)
Возвращает псевдослучайное long значение между указанным начальным значением (включительно) и указанным пределом (исключительно).
Требования к реализации:
В реализации по умолчанию проверяется, что origin и bound являются положительными longs. Затем вызывается nextLong(), ограничивая результат значениями больше или равными origin и меньше bound. Если bound является степенью двойки, ограничение выполняется с помощью операции побитового И. В противном случае результат пересчитывается путём вызова nextLong() до тех пор, пока результат не будет больше или равен origin и меньше bound.
Параметры:
origin - наименьшее возвращаемое значение
bound - верхний предел (исключительно) для возвращаемого значения
Возвращает:
псевдослучайное long значение между начальным значением (включительно) и пределом (исключительно)
Исключение:
IllegalArgumentException - если origin больше или равно bound

nextGaussian

default double nextGaussian()
Возвращает псевдослучайное значение, выбранное из гауссова (нормального) распределения со средним значением 0 и стандартным отклонением 1.
Требования к реализации:
По умолчанию используется быстрый измененный алгоритм Зиггурата Макфарлейна (в основном табличный, с редкими случаями, обрабатываемыми вычислениями и отбором). Также используется метод псевдо-алиасов Уолкера для выборки из дискретного распределения.
Возвращает:
псевдослучайное значение, выбранное из гауссова распределения

nextGaussian

default double nextGaussian(double mean, double stddev)
Возвращает псевдослучайное значение, выбранное из гауссова (нормального) распределения со средним значением и стандартным отклонением, указанными в аргументах.
Требования к реализации:
По умолчанию используется быстрый измененный алгоритм Зиггурата Макфарлейна (в основном табличный, с редкими случаями, обрабатываемыми вычислениями и отбором). Также используется метод псевдо-алиасов Уолкера для выборки из дискретного распределения.
Параметры:
mean - среднее значение гауссова распределения
stddev - стандартное отклонение (квадратный корень из дисперсии) гауссова распределения
Возвращает:
псевдослучайное значение, выбранное из указанного гауссова распределения
Исключение:
IllegalArgumentException - если stddev отрицательно

nextExponential

default double nextExponential()
Возвращает неотрицательное псевдослучайное значение, выбранное из экспоненциального распределения со средним значением 1.
Требования к реализации:
По умолчанию используется быстрый измененный алгоритм Зиггурата Макфарлейна (в основном табличный, с редкими случаями, обрабатываемыми вычислениями и отбором). Также используется метод псевдо-алиасов Уолкера для выборки из дискретного распределения.
Возвращает:
неотрицательное псевдослучайное значение, выбранное из экспоненциального распределения

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

Spec-Zone.ru

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