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 |
|
| Handle |
Возвращает значение JNI базового объекта Android. (Унаследовано от IJavaObject) |
| IsDeprecated |
Возвращает значение true, если реализация RandomGenerator (алгоритм) помечена как нерекомендуемая. |
| JniIdentityHashCode |
Возвращает значение |
| JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
| JniObjectReferenceControlBlock |
Интерфейс |
| JniPeerMembers |
Поддержка доступа к членам и вызовов. (Унаследовано от IJavaPeerable) |
| PeerReference |
JniObjectReference Возвращает экземпляр объекта в оболочке Java. (Унаследовано от IJavaPeerable) |
Методы
| Имя. | Описание |
|---|---|
| Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
| DisposeUnlessReferenced() |
Если нет невыполненных ссылок на этот экземпляр, то вызывается |
| Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
| NextBoolean() |
Возвращает псевдорандомное выбранное |
| NextBytes(Byte[]) |
Заполняет предоставленный пользователем массив байтов с созданными псевдорандомными значениями байтов, которые равномерно выбираются из диапазона значений между -128 (включительно) и 127 (включительно). |
| NextDouble() |
Возвращает псевдорандомное |
| NextDouble(Double, Double) |
Возвращает псевдоранрандомное |
| NextDouble(Double) |
Возвращает псевдоранрандомное значение, выбранное |
| NextExponential() |
Возвращает псевдонагативное |
| NextFloat() |
Возвращает псевдорандомное |
| NextFloat(Single, Single) |
Возвращает псевдоранрандомное |
| NextFloat(Single) |
Возвращает псевдоранрандомное значение, выбранное |
| NextGaussian() |
Возвращает псевдорандомное значение, выбранное |
| NextGaussian(Double, Double) |
|
| NextInt() |
Возвращает псевдорандомное выбранное |
| NextInt(Int32, Int32) |
Возвращает псевдоранрандомное |
| NextInt(Int32) |
Возвращает псевдоранрандомное значение, выбранное |
| NextLong() |
Возвращает псевдорандомное выбранное |
| NextLong(Int64, Int64) |
Возвращает псевдоранрандомное |
| NextLong(Int64) |
Возвращает псевдоранрандомное значение, выбранное |
| Of(String) |
Возвращает экземпляр |
| SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое |
| SetJniManagedPeerState(JniManagedPeerStates) |
Интерфейс |
| SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое |
| UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Интерфейс |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |