Condividi tramite


Random.NextInt Metodo

Definizione

Overload

NextInt()

Restituisce il valore pseudorandomo successivo, distribuito int uniformemente dalla sequenza del generatore di numeri casuali.

NextInt(Int32)

Restituisce uno pseudorandomo, distribuito int in modo uniforme tra 0 (inclusivo) e il valore specificato (esclusivo), estratto dalla sequenza del generatore di numeri casuali.

NextInt()

Restituisce il valore pseudorandomo successivo, distribuito int uniformemente dalla sequenza del generatore di numeri casuali.

[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

Restituisce

il valore pseudorandomo successivo, distribuito int uniformemente dalla sequenza del generatore di numeri casuali

Attributi

Commenti

Restituisce il valore pseudorandomo successivo, distribuito int uniformemente dalla sequenza del generatore di numeri casuali. Il contratto generale di nextInt è che un int valore è pseudorandomamente generato e restituito. Tutti i 2<sup>32</sup> possibili int valori vengono prodotti con (approssimativamente) uguale probabilità.

Il metodo nextInt viene implementato dalla classe Random come se:

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

Documentazione java per java.util.Random.nextInt().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

NextInt(Int32)

Restituisce uno pseudorandomo, distribuito int in modo uniforme tra 0 (inclusivo) e il valore specificato (esclusivo), estratto dalla sequenza del generatore di numeri casuali.

[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

Parametri

bound
Int32

limite superiore (esclusivo). Deve essere positivo.

Restituisce

il successivo pseudorandomo, distribuito int in modo uniforme tra zero (inclusivo) e bound (esclusivo) dalla sequenza del generatore di numeri casuali

Attributi

Commenti

Restituisce uno pseudorandomo, distribuito int in modo uniforme tra 0 (inclusivo) e il valore specificato (esclusivo), estratto dalla sequenza del generatore di numeri casuali. Il contratto generale di nextInt è che un int valore nell'intervallo specificato è pseudorandomamente generato e restituito. Tutti i bound valori possibili int vengono prodotti con (approssimativamente) uguale probabilità. Il metodo nextInt(int bound) viene implementato dalla classe Random come se:

{@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;
            }}

La siepe "approssimativamente" viene usata nella descrizione precedente solo perché il metodo successivo è solo una fonte non distorta di bit scelti indipendentemente. Se fosse una fonte perfetta di bit scelti in modo casuale, l'algoritmo mostrato sceglierebbe int i valori dall'intervallo dichiarato con uniformità perfetta.

L'algoritmo è leggermente complicato. Rifiuta i valori che generano una distribuzione non uniforme (a causa del fatto che 2^31 non è divisibile per n). La probabilità di rifiuto di un valore dipende da n. Il caso peggiore è n=2^30+1, per cui la probabilità di un rifiuto è 1/2 e il numero previsto di iterazioni prima che il ciclo termini è 2.

L'algoritmo tratta il caso in cui n è una potenza di due in particolare: restituisce il numero corretto di bit di ordine elevato dal generatore di numeri pseudo-casuali sottostanti. In assenza di un trattamento speciale, verrebbe restituito il numero corretto di bit di ordine basso. I generatori di numeri pseudo-casuali lineari, ad esempio quello implementato da questa classe, sono noti per avere brevi periodi nella sequenza di valori dei relativi bit di ordine basso. Pertanto, questo caso speciale aumenta notevolmente la lunghezza della sequenza di valori restituiti da chiamate successive a questo metodo se n è una piccola potenza di due.

Aggiunta nella versione 1.2.

Documentazione java per java.util.Random.nextInt(int).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a