Random.NextInt Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
NextInt() |
Retorna o próximo valor pseudoaleatório e uniformemente distribuído |
NextInt(Int32) |
Retorna um valor pseudoaleatório, uniformemente distribuído |
NextInt()
Retorna o próximo valor pseudoaleatório e uniformemente distribuído int
da sequência desse gerador de números aleatórios.
[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
Retornos
o próximo valor pseudoaleatório e uniformemente distribuído int
da sequência deste gerador de números aleatórios
- Atributos
Comentários
Retorna o próximo valor pseudoaleatório e uniformemente distribuído int
da sequência desse gerador de números aleatórios. O contrato geral de nextInt
é que um int
valor é gerado e retornado pseudoaleatoriamente. Todos os 2<sup>32</sup> valores possíveis int
são produzidos com (aproximadamente) igual probabilidade.
O método nextInt
é implementado por classe Random
como se por:
{@code
public int nextInt() {
return next(32);
}}
Documentação Java para java.util.Random.nextInt()
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
NextInt(Int32)
Retorna um valor pseudoaleatório, uniformemente distribuído int
entre 0 (inclusive) e o valor especificado (exclusive), extraído da sequência desse gerador de números aleatórios.
[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
Parâmetros
- bound
- Int32
o limite superior (exclusivo). Deve ser positivo.
Retornos
o próximo valor pseudoaleatório, uniformemente distribuído int
entre zero (inclusive) e bound
(exclusive) da sequência deste gerador de números aleatórios
- Atributos
Comentários
Retorna um valor pseudoaleatório, uniformemente distribuído int
entre 0 (inclusive) e o valor especificado (exclusive), extraído da sequência desse gerador de números aleatórios. O contrato geral de nextInt
é que um int
valor no intervalo especificado é gerado e retornado pseudoaleatoriamente. Todos os bound
valores possíveis int
são produzidos com probabilidade (aproximadamente) igual. O método nextInt(int bound)
é implementado por classe Random
como se por:
{@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;
}}
O hedge "aproximadamente" é usado na descrição anterior apenas porque o próximo método é apenas aproximadamente uma fonte imparcial de bits escolhidos independentemente. Se fosse uma fonte perfeita de bits escolhidos aleatoriamente, então o algoritmo mostrado escolheria int
valores do intervalo declarado com perfeita uniformidade.
O algoritmo é um pouco complicado. Ele rejeita valores que resultariam em uma distribuição desigual (devido ao fato de que 2^31 não é divisível por n). A probabilidade de um valor ser rejeitado depende de n. O pior caso é n=2^30+1, para o qual a probabilidade de uma rejeição é de 1/2, e o número esperado de iterações antes que o loop termine é 2.
O algoritmo trata o caso em que n é uma potência de dois especialmente: ele retorna o número correto de bits de alta ordem do gerador de números pseudoaleatórios subjacente. Na ausência de tratamento especial, o número correto de bits de baixa ordem seria retornado. Geradores de números pseudoaleatórios congruenciais lineares como o implementado por esta classe são conhecidos por terem períodos curtos na sequência de valores de seus bits de baixa ordem. Assim, este caso especial aumenta consideravelmente o comprimento da sequência de valores retornados por chamadas sucessivas para este método se n é uma pequena potência de dois.
Adicionado em 1.2.
Documentação Java para java.util.Random.nextInt(int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.