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