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

NOMBRE

       drand48,  erand48,  lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - generan
       números seudo-aleatorios distribuidos uniformemente

SINOPSIS

       #include <stdlib.h>

       double drand48(void);

       double erand48(unsigned short xsubi[3]);

       long int lrand48(void);

       long int nrand48(unsigned short xsubi[3]);

       long int mrand48(void);

       long int jrand48(unsigned short xsubi[3]);

       void srand48(long int seedval);

       unsigned short *seed48(unsigned short seed16v[3]);

       void lcong48(unsigned short param[7]);

DESCRIPCIÓN

       Estas funciones generan números seudo-aleatorios usando el algoritmo congruente  lineal  y
       artimética de enteros de 48 bits.

       Las  funciones drand48() y erand48() devuelven valores en coma flotante de doble precisión
       no negativos uniformemente distribuidos entre [0.0, 1.0).

       Las funciones lrand48() y nrand48() devuelven enteros  largos  no  negativos  distribuidos
       uniformemente entre 0 y 2^31.

       Las  funciones  mrand48()  y  jrand48()  devuelven  enteros  largos con signo distribuidos
       uniformemente entre -2^31 y 2^31.

       Las funciones srand48(), seed48() y lcong48() son funciones de inicialización, una de  las
       cuales  debe  ser  llamada  antes  de usar drand48(), lrand48() o mrand48(). Las funciones
       erand48(), nrand48() y jrand48() no  requieren  que  una  función  de  inicialización  sea
       llamada primero.

       Todas las funciones trabajan generando una secuencia de enteros de 48 bits, Xi, de acuerdo
       a la fórmula de congruencia lineal:

              Xn+1 = (aXn + c) mod m, donde n >= 0

       El parámetro m = 2^48, de aquí que la aritmética sea de 48 bits.  A menos que se  llame  a
       lcong48(), a y c son:

              a = 0x5DEECE66D
              c = 0xB

       El  valor  devuelto  por  cualquiera  de  las  funciones  drand48(), erand48(), lrand48(),
       nrand48(), mrand48() o jrand48() es calculado primero al generar el próximo Xi de 48  bits
       en la secuencia. Entonces se copia el número apropiado de bits, de acuerdo al tipo de dato
       a ser devuelto, desde los bits de mayor  orden  de  Xi,  y  se  transforman  en  el  valor
       devuelto.

       Las  funciones  drand48(), lrand48() y mrand48() guardan el último Xi de 48 bits generado,
       en un búfr interno. Las funciones  erand48(),  nrand48()  y  jrand48()  requieren  que  el
       programa  que  las  llame  proporcione  almacenamiento para los sucesivos valores Xi en el
       argumento vector xsubi. Las funciones se inicializan al colocar el valor inicial de Xi  en
       la cadena antes de llamar a la función la primera vez.

       La  función  inicializadora srand48() asigna los 32 bits de mayor orden de Xi al argumento
       seedval. Los 16 bits de orden bajo se rellenan con un valor arbitrario 0x330E.

       La función inicializadora seed48() asigna el valor de Xi al valor de 48 bits  especificado
       en el argumento vector seed16v. Los valores anteriores de Xi se copian en un búfer interno
       y seed48() devuelve un puntero a este búfer interno.

       La función inicializadora lcong48() permite al usuario especificar los  valores  iniciales
       para  Xi,  a  y  c.  En los elementos del argumento vector param[0-2] se especifica Xi, en
       param[3-5]  se especifica a, y en param[6] se especifica c. Después de llamar a lcong48(),
       una llamada a srand48() o seed48()  puede restaurar los valores estándares de a y c.

CONFORME A

       SVID 3

OBSERVACIONES

       Estas  funciones están declaradas como obsoletas por SVID 3, que dice que en su lugar debe
       emplearse la función rand(3).

VÉASE TAMBIÉN

       rand(3), random(3)

                                          21 Enero 1995                                DRAND48(3)