Compartir a través de


Random.NextInt Método

Definición

Sobrecargas

NextInt()

Devuelve el siguiente pseudoaleatorio, valor distribuido int uniformemente de la secuencia del generador de números aleatorios.

NextInt(Int32)

Devuelve un pseudoaleatorio, distribuido int uniformemente entre 0 (inclusivo) y el valor especificado (exclusivo), extraído de la secuencia del generador de números aleatorios.

NextInt()

Devuelve el siguiente pseudoaleatorio, valor distribuido int uniformemente de la secuencia del generador de números aleatorios.

[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

Devoluciones

el siguiente pseudoaleatorio, valor distribuido int uniformemente de la secuencia del generador de números aleatorios

Atributos

Comentarios

Devuelve el siguiente pseudoaleatorio, valor distribuido int uniformemente de la secuencia del generador de números aleatorios. El contrato general de nextInt es que un int valor se genera y devuelve de forma pseudoaleatoria. Los 2<sup>32</sup> posibles int valores se generan con la misma probabilidad (aproximadamente).

La clase Random implementa el método nextInt como si:

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

Documentación de Java para java.util.Random.nextInt().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

NextInt(Int32)

Devuelve un pseudoaleatorio, distribuido int uniformemente entre 0 (inclusivo) y el valor especificado (exclusivo), extraído de la secuencia del generador de números aleatorios.

[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

límite superior (exclusivo). Debe ser positivo.

Devoluciones

el siguiente pseudoaleatorio, valor distribuido int uniformemente entre cero (inclusivo) y bound (exclusivo) de la secuencia de este generador de números aleatorios

Atributos

Comentarios

Devuelve un pseudoaleatorio, distribuido int uniformemente entre 0 (inclusivo) y el valor especificado (exclusivo), extraído de la secuencia del generador de números aleatorios. El contrato general de nextInt es que un int valor del intervalo especificado se genera y devuelve de forma pseudoaleatoria. Todos los bound valores posibles int se generan con la misma probabilidad (aproximadamente). La clase Random implementa el método nextInt(int bound) como si:

{@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 cobertura se utiliza "aproximadamente" en la descripción anterior solo porque el siguiente método es solo una fuente no sesgada de bits elegidos independientemente. Si fuera una fuente perfecta de bits elegidos aleatoriamente, el algoritmo mostrado elegiría int valores del rango indicado con una uniformidad perfecta.

El algoritmo es ligeramente complicado. Rechaza los valores que darían lugar a una distribución desigual (debido al hecho de que 2^31 no es divisible por n). La probabilidad de que se rechace un valor depende de n. El peor caso es n=2^30+1, para el que la probabilidad de un rechazo es 1/2 y el número esperado de iteraciones antes de que finalice el bucle es 2.

El algoritmo trata el caso en el que n es una potencia de dos especialmente: devuelve el número correcto de bits de orden alto del generador de números pseudoaleatorios subyacente. En ausencia de tratamiento especial, se devolvería el número correcto de bits de orden bajo. Se sabe que los generadores de números pseudoaleatorios lineales congruenciales, como el implementado por esta clase, tienen períodos cortos en la secuencia de valores de sus bits de orden bajo. Por lo tanto, este caso especial aumenta considerablemente la longitud de la secuencia de valores devueltos por llamadas sucesivas a este método si n es una pequeña potencia de dos.

Agregado en la versión 1.2.

Documentación de Java para java.util.Random.nextInt(int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a