[C con Clase] rand () y srand () en c

Jose Alvaro Dominguez ilgrim en gmail.com
Mar Mayo 26 20:21:37 CEST 2009


> generación de números pseudo-aleatorios. Por lo tanto, sólo debes invocar
> 'srand()' una sola vez en tu programa. Aconsejo hacer esto nada más entrar
> en 'main()'. Para ofrecer algo más de aleatoriedad, sugiero tomar el valor
> que representa la fecha y hora cada vez que ejecutes tu programa. Esto lo
> puedes hacer invocando la función 'time()'. Por ejemplo,
>

Con eso estarias eliminando la (poca) aleatoriedad de la secuencia,
introduciendo un patron "predecible" basado en tiempo. Para un par de
valores... y si la aplicacion no tiene mayor importancia...tiene pase,
pero si es para algo especialmente critico...no creo que sea solucion.

Yo le echaria un ojo al Mersenne twister [1]. Es bastante rapido y
genera secuencias bastante poco predecibles, ademas de contar con un
bombazo de implementaciones. La pega? que no esta contemplado en el
ansi.. pero como suelo leer a mucha gente usando cosas raras en plan
"conio" ... tampoco creo que sea un impedimento.

[1] http://en.wikipedia.org/wiki/Mersenne_twister


Un saludo.




Más información sobre la lista de distribución Cconclase