Random.NextInt Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
NextInt() |
Restituisce il valore pseudorandomo successivo, distribuito |
NextInt(Int32) |
Restituisce uno pseudorandomo, distribuito |
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.