Provided by: manpages-es_1.55-10_all 

NOMBRE
rand, srand - generador de números pseudo-aleatorios
SINOPSIS
#include <stdlib.h>
int rand(void);
void srand(unsigned int semilla);
DESCRIPCIÓN
La función rand() devuelve un entero pseudo-aleatorio entre 0 y RAND_MAX.
La función srand() establece su argumento como la semilla de una nueva serie de enteros seudo-aleatorios
que serán devueltos en secuencia por rand(). Estas secuencias son repetibles si se llama a srand() con
el mismo valor para semilla.
Si no se proporciona ningún valor para la semilla (i.e., no se llama a srand()), la función rand()
automáticamente coge el valor 1 para la semilla.
VALOR DEVUELTO
La función rand() devuelve un valor entre 0 y RAND_MAX. La función srand() no devuelve nada.
OBSERVACIONES
Las versiones de rand() y srand() de la Biblioteca de C de Linux emplean el mismo generador de números
aleatorios que random() y srandom(), de modo que los bits de orden más bajo deberían ser tan aleatorios
como los de orden más alto. Sin embargo, en implementaciones de rand() más antiguas, los bits de más
bajo orden son mucho menos aleatorios que los de orden más alto.
En Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A.
Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1990 (2ª ed, pág. 277)), se hacen
los siguientes comentarios:
"Si Ud. quiere generar un entero aleatorio entre 1 y 10, siempre debería hacerlo usando los bits
de orden alto como en:
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
y nunca con algo parecido a esto:
j=1+(rand() % 10);
(que utiliza bits de más bajo orden)."
La generación de números aleatorios es un tema complejo. El libro Numerical Recipes in C (ver la
referencia anterior) proporciona una excelente discusión sobre la generación práctica de números
aleatorios en el capítulo 7 (Números Aleatorios).
Para una discusión más teórica que también cubra en profundidad otros detalles prácticos, por favor
consulte el capítulo 3 (Números Aleatorios) en el libro de Donald E. Knuth The Art of Computer
Programming, volumen 2 (Seminumerical Algorithms), 2ª ed.; Reading, Massachusetts: Addison-Wesley
Publishing Company, 1981.
CONFORME A
SVID 3, BSD 4.3, ISO 9899
VÉASE TAMBIÉN
random(3), srandom(3), initstate(3), setstate(3)
GNU 18 mayo 1995 RAND(3)