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

NOME

       drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
       lcong48 - gera numeros pseudo-randomicos 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,C~AO

       Essas funcoes geram numeros pseudo-randomicos  usando  o  algoritmo  de
       congruencia linear e aritmetica inteira de 48-bit.

       As funcoes drand48() e erand48() retornam inteiros longos nao-negativos
       distribuidos uniformemente entre [0.0, 1.0).

       As funcoes lrand48() e nrand48() retornam inteiros longos nao-negativos
       distribuidos uniformemente entre 0 e 2^31.

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

       As  funcoes  srand48(),   seed48()   e   lcong48()   sao   funcoes   de
       inicializacao,  as  quais  deve ser chamadas antes do uso de drand48(),
       lrand48() ou mrand49().  As funcoes erand48(),  nrand48()  e  jrand48()
       nao requerem a chamada da funcao de inicializacao primeiro.

       Todas  as  funcoes  trabalham gerando uma sequencia de inteiros 48-bit,
       Xi, de acordo com a formula de congruencia linear:

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

       O parametro m = 2^48, portanto  uma  aritmetica  de  inteiro  48-bit  e
       realizada.   A  nao  ser  que lcong48() seja chamada, a e c sao obtidos
       por:

              a = 0x5DEECE66D
              c = 0xB

       O valor retornado por qualquer uma das  funcoes  drand48(),  erand48(),
       lrand48(),  nrand48(), mrand48() ou jrand48() e computado para primeira
       geracao do proximo 48-bit Xi na sequencia.  Entao, o numero  apropriado
       de  bits,  de  acordo  com  o  tipo  de item de dado a ser retornado, e
       copiado dos bits de mais alta ordem  de  Xi  e  transformado  no  valor
       retornado.

       As  funcoes  drand48(), lrand48() e mrand48() armazenam o ultimo 48-bit
       Xi gerado em um buffer interno.   As  funcoes  erand48(),  nrand48()  e
       jrand48()  requerem  que  o programa chamador providencie armazenamento
       para os valores sucessivos de Xi no argumento vetor xsubi.  As  funcoes
       sao  inicializadas pela colocacao do valor inicial de Xi no vetor antes
       da primeira chamada as funcoes.

       A funcao de inicializacao srand48() ajusta  os  32-bits  de  mais  alta
       ordem  de  Xi para o argumento seedval.  Os 16-bits de mais baixa ordem
       sao ajustados arbitrariamente para o valor 0x330E.

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

       A  funcao  de  inicializacao  lcong48()  permite ao usuario 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.
       Apos a chamada de lcong48(), uma chamada  subsequente  a  srand48()  ou
       seed48() ira restaurar os valores padrao de a e c.

CONFORMIDADE

       SVID 3

NOTAS

       Essas  funcoes  sao  declaradas obsoletas por SVID 3, o qual indica que
       rand(3) deve ser usado em seu lugar.

VEJA TAMB'EM

       rand(3), random(3)

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

       Marcelo D. Beckmann <marcelobeckmann@yahoo.com> (traducao) Espaco  para
       o Revisor <nome@dominio.com.br> (revisao)

                                 2 Julho 1993                       DRAND48(3)