Sprache

IRandomGenerator Schnittstelle

Definition

Die RandomGenerator Schnittstelle wurde entwickelt, um ein allgemeines Protokoll für Objekte bereitzustellen, die zufällige oder (in der Regel) pseudorandomsequenzen von Zahlen (oder booleschen Werten) generieren.

[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
Abgeleitet
Attribute
Implementiert

Hinweise

Die RandomGenerator Schnittstelle wurde entwickelt, um ein allgemeines Protokoll für Objekte bereitzustellen, die zufällige oder (in der Regel) pseudorandomsequenzen von Zahlen (oder booleschen Werten) generieren. Eine solche Sequenz kann entweder durch wiederholtes Aufrufen einer Methode abgerufen werden, die einen einzelnen pseudozufällig gewählten Wert zurückgibt, oder durch Aufrufen einer Methode, die einen Datenstrom von pseudorandig gewählten Werten zurückgibt.

Im Idealfall, wenn ein impliziter oder explizit angegebener Wertebereich gegeben ist, würde jeder Wert unabhängig und einheitlich aus diesem Bereich ausgewählt. In der Praxis muss man sich vielleicht mit einer Annäherung an Unabhängigkeit und Einheitlichkeit begnügen.

Im Fall von int, longund boolean Werten, wenn keine explizite Spezifikation des Bereichs vorhanden ist, enthält der Bereich alle möglichen Werte des Typs. Im Fall von float und double Werten wird zuerst ein Wert immer einheitlich aus der Gruppe von 2<sup>w</sup-Werten> zwischen 0,0 (einschließlich) und 1,0 (exklusiv) ausgewählt, wobei w für float Werte und Double#PRECISION für double Werte bestimmt istFloat#PRECISION, sodass sich benachbarte Werte von 2<sup>&minus unterscheiden;w</sup> (beachten Sie, dass dieser Satz eine Teilmenge des Satzes aller darstellbaren Gleitkommawerte zwischen 0,0 (einschließlich) und 1,0 (exklusiv)) ist); wenn ein expliziter Bereich angegeben wurde, wird die ausgewählte Zahl rechnerisch skaliert und übersetzt, sodass sie ungefähr einheitlich aus diesem expliziten Bereich ausgewählt wurden.

Jede Methode, die einen Datenstrom zurückgibt, erzeugt einen Datenstrom von Werten, die jeweils auf die gleiche Weise ausgewählt werden wie für eine Methode, die einen einzelnen pseudorandom ausgewählten Wert zurückgibt. Wenn beispielsweise r implementiert wird RandomGenerator, gibt der Methodenaufruf r.ints(100) einen Datenstrom von 100 int Werten zurück. Dies sind nicht unbedingt die genauen Werte, die zurückgegeben werden würden, wenn sie stattdessen r.nextInt() 100 Mal aufgerufen worden wären. Alles, was garantiert ist, ist, dass jeder Wert im Datenstrom in einer ähnlichen pseudorandom-Weise aus demselben Bereich ausgewählt wird.

Jedes Objekt, das die RandomGenerator Schnittstelle mithilfe eines Pseudorandomalgorithmus implementiert, wird angenommen, eine endliche Menge an Zustand zu enthalten. Wenn Sie ein solches Objekt verwenden, um einen pseudozufällig gewählten Wert zu generieren, wird der Zustand durch Berechnen eines neuen Zustands als Funktion des aktuellen Zustands geändert, ohne auf andere Informationen als den aktuellen Zustand zu verweisen. Die Anzahl der unterschiedlichen möglichen Zustände eines solchen Objekts wird als Seine Periode bezeichnet. (Einige Implementierungen der RandomGenerator Schnittstelle können wirklich zufällig und nicht pseudorandom sein, z. B. auf das statistische Verhalten eines physischen Objekts, um ausgewählte Werte abzuleiten. Solche Implementierungen haben keinen festen Zeitraum.)

In der Regel müssen Objekte, die die RandomGenerator Schnittstelle implementieren, nicht threadsicher sein. Es wird empfohlen, Multithread-Anwendungen entweder ThreadLocalRandom oder (vorzugsweise) Pseudorandomzahlengeneratoren zu verwenden, die die SplittableGenerator Oder-Schnittstelle JumpableGenerator implementieren.

Objekte, die implementiert RandomGenerator werden, sind in der Regel nicht kryptografisch sicher. Erwägen Sie stattdessen die Verwendung SecureRandom eines kryptografisch sicheren Pseudozuschreibungszahlengenerators für die Verwendung durch sicherheitsrelevante Anwendungen. Beachten Sie jedoch, dass die SecureRandomRandomGenerator Schnittstelle implementiert wird, sodass Instanzen von SecureRandom möglicherweise austauschbar mit anderen Typen von Pseudorandomgeneratoren in Anwendungen verwendet werden können, die keinen sicheren Generator erfordern.

Sofern nicht anders angegeben, führt die Verwendung von NULL für ein Beliebiges Methodenargument zu einer NullPointerException.

Hinzugefügt in 17.

Java Dokumentation für java.util.random.RandomGenerator.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
Default

Gibt eine RandomGenerator Besprechung der minimalen Anforderung für einen Algorithmus zurück, deren Statusbits größer oder gleich 64 sind.

Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
IsDeprecated

Gibt "true" zurück, wenn die Implementierung von RandomGenerator (Algorithmus) zur Deaktivierung markiert wurde.

JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniObjectReferenceControlBlock

Die RandomGenerator Schnittstelle wurde entwickelt, um ein allgemeines Protokoll für Objekte bereitzustellen, die zufällige oder (in der Regel) pseudorandomsequenzen von Zahlen (oder booleschen Werten) generieren.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
PeerReference

Gibt eine JniObjectReference der umbrochenen Java Objektinstanz zurück.

(Geerbt von IJavaPeerable)

Methoden

Name Beschreibung
Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
NextBoolean()

Gibt einen pseudozufällig ausgewählten Wert zurück boolean .

NextBytes(Byte[])

Füllt ein vom Benutzer bereitgestelltes Bytearray mit generierten Bytewerten, die pseudozufällig aus dem Wertebereich zwischen -128 (einschließlich) und 127 (einschließlich) ausgewählt wurden.

NextDouble()

Gibt einen Pseudorandomwert double zwischen Null (einschließlich) und 1 (exklusiv) zurück.

NextDouble(Double, Double)

Gibt einen pseudozufällig ausgewählten double Wert zwischen dem angegebenen Ursprung (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextDouble(Double)

Gibt einen pseudozufällig ausgewählten double Wert zwischen Null (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextExponential()

Gibt einen nichtnegativen double Wert pseudozufällig aus einer exponentiellen Verteilung zurück, deren Mittel 1 ist.

NextFloat()

Gibt einen Pseudorandomwert float zwischen Null (einschließlich) und 1 (exklusiv) zurück.

NextFloat(Single, Single)

Gibt einen pseudozufällig ausgewählten float Wert zwischen dem angegebenen Ursprung (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextFloat(Single)

Gibt einen pseudozufällig ausgewählten float Wert zwischen Null (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextGaussian()

Gibt einen double von einer Gaussischen (Normal)-Verteilung gewählten Wert pseudozufällig zurück, dessen Mittel 0 ist und dessen Standardabweichung 1 ist.

NextGaussian(Double, Double)

Gibt einen double von einer Gaussischen (Normal)-Verteilung ausgewählten Wert mit einer durch die Argumente angegebenen Mittel- und Standardabweichung pseudozufällig zurück.

NextInt()

Gibt einen pseudozufällig ausgewählten Wert zurück int .

NextInt(Int32, Int32)

Gibt einen pseudozufällig ausgewählten int Wert zwischen dem angegebenen Ursprung (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextInt(Int32)

Gibt einen pseudozufällig ausgewählten int Wert zwischen Null (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextLong()

Gibt einen pseudozufällig ausgewählten Wert zurück long .

NextLong(Int64, Int64)

Gibt einen pseudozufällig ausgewählten long Wert zwischen dem angegebenen Ursprung (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

NextLong(Int64)

Gibt einen pseudozufällig ausgewählten long Wert zwischen Null (einschließlich) und der angegebenen Grenze (exklusiv) zurück.

Of(String)

Gibt eine Instanz davon zurück, die RandomGenerator den nameAlgorithmus verwendet.

SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Die RandomGenerator Schnittstelle wurde entwickelt, um ein allgemeines Protokoll für Objekte bereitzustellen, die zufällige oder (in der Regel) pseudorandomsequenzen von Zahlen (oder booleschen Werten) generieren.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Die RandomGenerator Schnittstelle wurde entwickelt, um ein allgemeines Protokoll für Objekte bereitzustellen, die zufällige oder (in der Regel) pseudorandomsequenzen von Zahlen (oder booleschen Werten) generieren.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: