Provided by: manpages-es_1.55-8_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)