Provided by: manpages-es_1.55-10_all bug

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)