Freigeben über


Random.NextInt Methode

Definition

Überlädt

NextInt()

Gibt den nächsten pseudozufälligen, gleichmäßig verteilten int Wert aus der Sequenz dieses Zufallszahlengenerators zurück.

NextInt(Int32)

Gibt einen pseudorandom, gleichmäßig verteilten int Wert zwischen 0 (einschließlich) und dem angegebenen Wert (exklusiv) zurück, der aus der Sequenz des Zufallszahlengenerators gezeichnet wird.

NextInt()

Gibt den nächsten pseudozufälligen, gleichmäßig verteilten int Wert aus der Sequenz dieses Zufallszahlengenerators zurück.

[Android.Runtime.Register("nextInt", "()I", "GetNextIntHandler")]
public virtual int NextInt ();
[<Android.Runtime.Register("nextInt", "()I", "GetNextIntHandler")>]
abstract member NextInt : unit -> int
override this.NextInt : unit -> int

Gibt zurück

der nächste pseudorandom, einheitlich verteilte int Wert aus der Sequenz des Zufallszahlengenerators

Attribute

Hinweise

Gibt den nächsten pseudozufälligen, gleichmäßig verteilten int Wert aus der Sequenz dieses Zufallszahlengenerators zurück. Der allgemeine Vertrag ist nextInt , dass ein int Wert pseudozufällig generiert und zurückgegeben wird. Alle 2<sup>32</sup> möglichen int Werte werden mit (ungefähr) gleicher Wahrscheinlichkeit erzeugt.

Die Methode nextInt wird von klasse Random implementiert, als wäre es wie folgt:

{@code
            public int nextInt() {
              return next(32);
            }}

Java-Dokumentation für java.util.Random.nextInt().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

NextInt(Int32)

Gibt einen pseudorandom, gleichmäßig verteilten int Wert zwischen 0 (einschließlich) und dem angegebenen Wert (exklusiv) zurück, der aus der Sequenz des Zufallszahlengenerators gezeichnet wird.

[Android.Runtime.Register("nextInt", "(I)I", "GetNextInt_IHandler")]
public virtual int NextInt (int bound);
[<Android.Runtime.Register("nextInt", "(I)I", "GetNextInt_IHandler")>]
abstract member NextInt : int -> int
override this.NextInt : int -> int

Parameter

bound
Int32

die obere Grenze (exklusiv). Muss positiv sein.

Gibt zurück

der nächste pseudorandom, einheitlich verteilte int Wert zwischen Null (einschließlich) und bound (exklusiv) aus der Sequenz des Zufallszahlengenerators

Attribute

Hinweise

Gibt einen pseudorandom, gleichmäßig verteilten int Wert zwischen 0 (einschließlich) und dem angegebenen Wert (exklusiv) zurück, der aus der Sequenz des Zufallszahlengenerators gezeichnet wird. Der allgemeine Vertrag ist nextInt , dass ein int Wert im angegebenen Bereich pseudozufällig generiert und zurückgegeben wird. Alle bound möglichen int Werte werden mit (ungefähr) gleicher Wahrscheinlichkeit erzeugt. Die Methode nextInt(int bound) wird von klasse Random implementiert, als wäre es wie folgt:

{@code
            public int nextInt(int bound) {
              if (bound <= 0)
                throw new IllegalArgumentException("bound must be positive");

              if ((bound & -bound) == bound)  // i.e., bound is a power of 2
                return (int)((bound * (long)next(31)) >> 31);

              int bits, val;
              do {
                  bits = next(31);
                  val = bits % bound;
              } while (bits - val + (bound-1) < 0);
              return val;
            }}

Die Hecke "ungefähr" wird in der vorstehenden Beschreibung nur verwendet, weil die nächste Methode nur ungefähr eine unvoreingenommene Quelle von unabhängig gewählten Bits ist. Wenn es sich um eine perfekte Quelle zufällig gewählter Bits handelte, würde der gezeigte Algorithmus Werte aus dem angegebenen Bereich mit perfekter Uniformität auswählen int .

Der Algorithmus ist leicht schwierig. Sie lehnt Werte ab, die zu einer ungleichmäßigen Verteilung führen würden (aufgrund der Tatsache, dass 2^31 nicht durch n divisierbar ist). Die Wahrscheinlichkeit eines abgelehnten Werts hängt von n ab. Der worst case is n=2^30+1, for which the probability of a reject is 1/2, and the expected number of iterations before the loop terminates is 2.

Der Algorithmus behandelt den Fall, wenn n eine Leistung von zwei speziellen Ist: es gibt die richtige Anzahl von Bits mit hoher Reihenfolge aus dem zugrunde liegenden Pseudo-Zufallszahlengenerator zurück. In Abwesenheit einer speziellen Behandlung würde die richtige Anzahl von Bits mit niedriger Reihenfolge zurückgegeben. Lineare zufallsbezogene Pseudozahlengeneratoren wie die von dieser Klasse implementierte Zufallszahl sind bekanntermaßen kurze Zeiträume in der Abfolge der Werte ihrer Bits mit niedriger Reihenfolge. Daher erhöht dieser Sonderfall die Länge der Von aufeinander folgenden Aufrufen dieser Methode zurückgegebenen Werte erheblich, wenn n eine kleine Potenz von zwei ist.

In 1.2 hinzugefügt.

Java-Dokumentation für java.util.Random.nextInt(int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: