Provided by: manpages-pt-dev_20040726-2_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)