Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       drand48,  erand48,  lrand48,  nrand48,  mrand48,  jrand48, srand48, seed48, lcong48 - gera
       números pseudo-randômicos distribuidos uniformemente

SINOPSE

       #include <stdlib.h>

       double drand48(void);

       double erand48(unsigned short int xsubi[3]);

       long int lrand48(void);

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

       long int mrand48(void);

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

       void srand48(long int seedval);

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

       void lcong48(unsigned short int param[7]);

DESCRIÇÃO

       Essas funções geram números pseudo-randômicos usando o algoritmo de congruência  linear  e
       aritmética inteira de 48-bit.

       As  funções  drand48()  e  erand48()  retornam  inteiros longos não-negativos distribuidos
       uniformemente entre [0.0, 1.0).

       As funções lrand48() e  nrand48()  retornam  inteiros  longos  não-negativos  distribuidos
       uniformemente entre 0 e 2^31.

       As  funções  mrand48()  e  jrand48()  retornam  inteiros  longos  com  sinal  distribuidos
       uniformemente entre -2^31 and 2^31.

       As funções srand48(), seed48() e lcong48() são funções de inicialização, as quais deve ser
       chamadas  antes  do  uso  de  drand48(),  lrand48()  ou  mrand49().  As funções erand48(),
       nrand48() e jrand48() não requerem a chamada da função de inicialização primeiro.

       Todas as funções trabalham gerando uma sequencia de inteiros 48-bit, Xi, de acordo  com  a
       formula de congruência linear:

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

       O  parâmetro  m  = 2^48, portanto uma aritmética de inteiro 48-bit é realizada.  A não ser
       que lcong48() seja chamada, a e c são obtidos por:

              a = 0x5DEECE66D
              c = 0xB

       O valor retornado por qualquer uma das funções drand48(), erand48(), lrand48(), nrand48(),
       mrand48()  ou  jrand48()  é  computado  para  primeira  geração  do  próximo  48-bit Xi na
       sequência.  Então, o número apropriado de bits, de acordo com o tipo de item de dado a ser
       retornado, é copiado dos bits de mais alta ordem de Xi e transformado no valor retornado.

       As  funções  drand48(),  lrand48()  e  mrand48() armazenam o último 48-bit Xi gerado em um
       buffer interno.  As funções erand48(), nrand48()  e  jrand48()  requerem  que  o  programa
       chamador  providencie  armazenamento  para  os valores sucessivos de Xi no argumento vetor
       xsubi. As funções são inicializadas pela colocação do valor inicial de Xi no  vetor  antes
       da primeira chamada as funções.

       A  função  de  inicialização  srand48()  ajusta os 32-bits de mais alta ordem de Xi para o
       argumento seedval.  Os 16-bits de mais baixa ordem são ajustados  arbitrariamente  para  o
       valor 0x330E.

       A  função de inicialização seed48() seta o valor de Xi para o valor 48-bit especificado no
       argumento vetor seed16v.  O valor anterior de Xi é copiado  em  um  buffer  interno  e  um
       ponteiro para esse buffer é retornado por seed48().

       A  função  de inicialização lcong48() permite ao usuário especificar valores iniciais para
       Xi, a e c. O elemento param[0-2] do argumento vetor especifica Xi,  param[3-5]  especifica
       a,  e  param[6]  especifica  c.   Após  a  chamada de lcong48(), uma chamada subsequente a
       srand48() ou seed48() irá restaurar os valores padrão de a e c.

CONFORMIDADE

       SVID 3

NOTAS

       Essas funções são declaradas obsoletas por SVID 3, o qual  indica  que  rand(3)  deve  ser
       usado em seu lugar.

VEJA TAMBÉM

       rand(3), random(3)

TRADUZIDO POR LDP-BR em 21/08/2000.

       Marcelo   D.   Beckmann  <marcelobeckmann@yahoo.com>  (tradução)  Espaço  para  o  Revisor
       <nome@dominio.com.br> (revisão)

                                           2 Julho 1993                                DRAND48(3)