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