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.
 

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:
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 similares