Язык

IRandomGenerator Интерфейс

Определение

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

[Android.Runtime.Register("java/util/random/RandomGenerator", "", "Java.Util.RandomGenerators.IRandomGeneratorInvoker", ApiSince=35)]
public interface IRandomGenerator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/random/RandomGenerator", "", "Java.Util.RandomGenerators.IRandomGeneratorInvoker", ApiSince=35)>]
type IRandomGenerator = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Производный
Атрибуты
Реализации

Комментарии

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

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

В случае int, longи boolean значения, если нет явной спецификации диапазона, диапазон включает все возможные значения типа. В случае float и double значений первое значение всегда выбирается равномерно из набора 2<supw/sup>> значений от 0,0 (включительно) до 1,0 (монопольное), где w< — для float значений и Double#PRECISION для double значений, так что смежные значения отличаются Float#PRECISION 2<sup>&минус;w</sup> (обратите внимание, что этот набор представляет собой подмножествовсех представленных значений с плавающей запятой от 0,0 до 1.0 (включительно) и 1.0 (монопольное)), то если был указан явный диапазон, то выбранное число вычисляется и преобразуется так, чтобы казалось, был выбран примерно равномерно из этого явного диапазона.

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

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

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

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

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

Добавлено в 17.

Java документации по java.util.random.RandomGenerator.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя. Описание
Default

RandomGenerator Возвращает минимальное требование наличия алгоритма, состояние которого больше или равно 64.

Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
IsDeprecated

Возвращает значение true, если реализация RandomGenerator (алгоритм) помечена как нерекомендуемая.

JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniObjectReferenceControlBlock

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

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызовов.

(Унаследовано от IJavaPeerable)
PeerReference

JniObjectReference Возвращает экземпляр объекта в оболочке Java.

(Унаследовано от IJavaPeerable)

Методы

Имя. Описание
Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если нет невыполненных ссылок на этот экземпляр, то вызывается Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Finalized()

Вызывается при завершении экземпляра.

(Унаследовано от IJavaPeerable)
NextBoolean()

Возвращает псевдорандомное выбранное boolean значение.

NextBytes(Byte[])

Заполняет предоставленный пользователем массив байтов с созданными псевдорандомными значениями байтов, которые равномерно выбираются из диапазона значений между -128 (включительно) и 127 (включительно).

NextDouble()

Возвращает псевдорандомное double значение от нуля (включительно) до одного (эксклюзивного).

NextDouble(Double, Double)

Возвращает псевдоранрандомное double значение между указанным источником (включительно) и заданным ограничивающим (эксклюзивным).

NextDouble(Double)

Возвращает псевдоранрандомное значение, выбранное double от нуля (включительно) до указанной привязки (монопольной).

NextExponential()

Возвращает псевдонагативное double значение, выбранное из экспоненциального распределения, среднее значение которого равно 1.

NextFloat()

Возвращает псевдорандомное float значение от нуля (включительно) до одного (эксклюзивного).

NextFloat(Single, Single)

Возвращает псевдоранрандомное float значение между указанным источником (включительно) и заданным ограничивающим (эксклюзивным).

NextFloat(Single)

Возвращает псевдоранрандомное значение, выбранное float от нуля (включительно) до указанной привязки (монопольной).

NextGaussian()

Возвращает псевдорандомное значение, выбранное double из распределения Гауссиана (нормального), среднее значение которого равно 0 и стандартное отклонение которого равно 1.

NextGaussian(Double, Double)

double Возвращает псевдорандомное значение, выбранное из распределения Gaussian (нормальный) со средним и стандартным отклонением, заданным аргументами.

NextInt()

Возвращает псевдорандомное выбранное int значение.

NextInt(Int32, Int32)

Возвращает псевдоранрандомное int значение между указанным источником (включительно) и заданным ограничивающим (эксклюзивным).

NextInt(Int32)

Возвращает псевдоранрандомное значение, выбранное int от нуля (включительно) до указанной привязки (монопольной).

NextLong()

Возвращает псевдорандомное выбранное long значение.

NextLong(Int64, Int64)

Возвращает псевдоранрандомное long значение между указанным источником (включительно) и заданным ограничивающим (эксклюзивным).

NextLong(Int64)

Возвращает псевдоранрандомное значение, выбранное long от нуля (включительно) до указанной привязки (монопольной).

Of(String)

Возвращает экземпляр RandomGenerator , который использует nameалгоритм.

SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое JniIdentityHashCode.

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

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

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое PeerReference.

(Унаследовано от IJavaPeerable)
UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к