drand48(3) Library Functions Manual drand48(3) NOME drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - gera numeros pseudo-randomicos distribuidos uniformemente BIBLIOTECA Biblioteca C Padrao (libc, -lc) SINOPSE #include double drand48(void); double erand48(unsigned short xsubi[3]); long lrand48(void); long nrand48(unsigned short xsubi[3]); long mrand48(void); long jrand48(unsigned short xsubi[3]); void srand48(long seedval); unsigned short *seed48(unsigned short seed16v[3]); void lcong48(unsigned short param[7]); Requisitos de macro de teste de recursos para o glibc (consulte feature_test_macros(7)): Todas as funcoes mostradas acima: _XOPEN_SOURCE || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE DESCRICAO Essas funcoes geram numeros pseudo-randomicos usando o algoritmo de congruencia linear e aritmetica inteira de 48-bit. The drand48() and erand48() functions return nonnegative double-precision floating-point values uniformly distributed over the interval [0.0, 1.0). The lrand48() and nrand48() functions return nonnegative long integers uniformly distributed over the interval [0, 2^31). The mrand48() and jrand48() functions return signed long integers uniformly distributed over the interval [-2^31, 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. ATRIBUTOS Para uma explicacao dos termos usados nesta secao, consulte attributes(7). +---------------------------------------+---------------+--------------+ |Interface | Atributo | Valor | +---------------------------------------+---------------+--------------+ |drand48(), erand48(), lrand48(), | Thread safety | MT-Unsafe | |nrand48(), mrand48(), jrand48(), | | race:drand48 | |srand48(), seed48(), lcong48() | | | +---------------------------------------+---------------+--------------+ The above functions record global state information for the random number generator, so they are not thread-safe. PADROES POSIX.1-2008. HISTORICO POSIX.1-2001, SVr4. VEJA TAMBEM rand(3), random(3) TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Marcelo D. Beckmann e Andre Luiz Fassone Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 drand48(3)