2142 votos

¿Cómo generar el número aleatorio int?

¿Cómo generar el número aleatorio int?

2746voto

Guffa Puntos 308133

El Random clase se utiliza para crear números aleatorios. (Pseudo-random es por supuesto).

Ejemplo:

Random rnd = new Random();
int month = rnd.Next(1, 13); // creates a number between 1 and 12
int dice = rnd.Next(1, 7); // creates a number between 1 and 6
int card = rnd.Next(52); // creates a number between 0 and 51

Si vas a crear más de un número al azar, debes tener el Random ejemplo y reutilizarlo. Si se crean nuevas instancias muy cerca en el tiempo, producirán la misma serie de números aleatorios como el generador aleatorio está sembrado desde el reloj del sistema.

252voto

Pankaj Mishra Puntos 5377

Cada vez que haces new Random() se inicializa. Esto significa que en un bucle ajustado obtendrá el mismo valor muchas veces. Debe mantener una única instancia de Random y seguir utilizando el siguiente en la misma instancia.

//Function to get random number
private static readonly Random getrandom = new Random();
private static readonly object syncLock = new object();
public static int GetRandomNumber(int min, int max)
{
    lock(syncLock) { // synchronize
        return getrandom .Next(min, max);
    }
}

106voto

Fyodor Soikin Puntos 7907

new Random().Next( int.MinValue, int.MaxValue )

Para obtener más información, mira la clase Random , aunque tenga en cuenta:

Sin embargo, debido a que el reloj tiene resolución finita, usando el constructor sin parámetros para crear diferentes objetos al azar en estrecha sucesión crea generadores de números aleatorios que producen secuencias idénticas de números al azar

60voto

Joren Puntos 7911
Random r = new Random();
int n = r.Next();

18voto

mbcrump Puntos 342

Podrías usar método de Jon Skeet StaticRandom dentro de la biblioteca de clases de MiscUtil que él construyó para un número verdaderamente aleatorio.

using System;
using MiscUtil;

class Program
{
    static void Main(string[] args)
    {
        for (int i = 0; i < 100; i++)
        {
            Console.WriteLine(StaticRandom.Next());
        }
    }
}

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X