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)

GNU                                               18 mayo 1995                                           RAND(3)