Numeros Random

28/09/2007 - 17:00 por Robert Barreiro | Informe spam
Buenas, que tal?

Estoy haciendo una aplicacion que debe generar números al azar (que luego
van a representar barajas) y las mismas se generan todas dentro de un bucle
while. Estoy utilizando

Random randGen = new Random(Convert.ToInt32(DateTime.Now.Ticks &
0x000000007FFFFFFF));

con la intención de que los numeros generados sean lo suficientemente
aleatorios pero la verdad la generación es tan rápida que muchas veces me
genera los mismos valores o varios de ellos son iguales y luego cambian,
etc. Incluso le agergué un System.Threading.Thread.Sleep(50); con la
intención de que espere un poco antes de generar el nuevo valor, pero el
cmoportamiento sigue sin ser bueno y no quiero aumentar el valor del Sleep a
100 o mas.

Alguno conoce alguna manera de generar verdaderos numeros al azar y que no
tenga problemas al generar una serie de números muy rápido?


Agradezco mucho su respuesta.


Saludos,



Robert.

Preguntas similare

Leer las respuestas

#1 Guillermo guille
28/09/2007 - 18:10 | Informe spam
El valor ese que le indicas en el constructor es solo para la semilla del
generador.
Por tanto, no deberías estar creando objetos nuevos dentro del bucle.
Crea un objeto Random al principio, usando ese código si quieres, para que
la semilla sea distinta, pero después simplemente usa los métodos de la
clase para generar el número.

Recuerda que esa semilla es la que indica que la serie no será la misma
siempre... es decir, si siempre usaras una misma semilla, siempre debería
generar los mismos números.

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Robert Barreiro" wrote in message
news:
Mostrar la cita
#2 Robert Barreiro
28/09/2007 - 22:24 | Informe spam
Ahhh, te entendí, te entendí. Bien ahi!!! :)

Grande Guille. Muchas gracias por la info.



Saludos!!




"Guillermo 'guille'" escribió en el mensaje
news:
Mostrar la cita
#3 Guillermo guille
30/09/2007 - 23:18 | Informe spam
Acabo de publicar un artículo sobre este tema, ya que ese tipo de "fallo" es
muy común:
http://www.elguille.info/NET/dotnet..._Next.aspx


Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Robert Barreiro" wrote in message
news:u%
Mostrar la cita
#4 Robert Barreiro
01/10/2007 - 17:01 | Informe spam
Buenísimo!!

Gracias Guille!! Anduvo al pelo :)




"Guillermo 'guille'" escribió en el mensaje
news:
Mostrar la cita
#5 Harvey Triana
01/10/2007 - 18:05 | Informe spam
Elegante. Me gusto la naturaleza de la redacción *. Supongo que por ser solo
un ejemplo la función cadenaAleatoria tiene un conjunto de caracteres tan
reducido. La función que publico a continuación me gusta por la versatilidad
del conjunto de caracteres, y el tratamiento por el indice del array (cosa
que poco se ve en VB). La iniciación de la semilla es como nos explicaste:



public static string RandomizeString(int Size)

{

const string SCANSTRING =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

StringBuilder sb = new StringBuilder();



for (int i = 0; i < Size; i++)

{

sb.Append(SCANSTRING[rnd.Next(0, SCANSTRING.Length - 1)]);

}

return sb.ToString();

}



<Harvey Triana />



"Guillermo 'guille'" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida