srand() + time() en Linux
Alvaro Herrera
alvherre en alvh.no-ip.org
Dom Oct 8 09:49:26 CLT 2006
Pablo Cruz Navea escribió:
> Hola,
>
> estoy trabajando con un programa en C que depende de la generación de
> números aleatorios. Lo que hago es lo siguiente:
>
> ....
> srand (time (NULL));
> i = rand () % 2;
> ....
>
> Lo de %2 es para generar sólo números binarios. El problema que tengo
> es que time (NULL) varía muy lentamente, y el programa se "pega" mucho
> tiempo con los mismos números.
>
> ¿Alguna solución? ¿Habrá otra forma de sacar un unsigned en Linux para
> srand()?
La solucion es que no invoques srand() para cada numero, sino una sola
vez al inicio del programa.
--
Alvaro Herrera http://www.advogato.org/person/alvherre
"Cuando mañana llegue pelearemos segun lo que mañana exija" (Mowgli)
Más información sobre la lista de distribución Linux