1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" References consulted:
.\" Linux libc source code
.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\" 386BSD man pages
.\" Modified Sat Jul 24 19:46:03 1993 by Rik Faith (faith@cs.unc.edu)
.TH DRAND48 3 "2 Julho 1993" "" "Manual do Programador Linux"
.SH NOME
drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
lcong48 \- gera nmeros pseudo-randmicos distribuidos uniformemente
.SH SINOPSE
.nf
.B #include <stdlib.h>
.sp
.B double drand48(void);
.sp
.BI "double erand48(unsigned short int " xsubi [3]);
.sp
.B long int lrand48(void);
.sp
.BI "long int nrand48(unsigned short int " xsubi [3]);
.sp
.B long int mrand48(void);
.sp
.BI "long int jrand48(unsigned short int " xsubi [3]);
.sp
.BI "void srand48(long int " seedval );
.sp
.BI "unsigned short int *" seed48(unsigned short int " seed16v [3]);
.sp
.BI "void lcong48(unsigned short int " param [7]);
.fi
.SH DESCRIO
Essas funes geram nmeros pseudo-randmicos usando o algoritmo de
congruncia linear e aritmtica inteira de 48-bit.
.PP
As funes \fBdrand48()\fP e \fBerand48()\fP retornam inteiros longos
no-negativos distribuidos uniformemente entre [0.0, 1.0).
.PP
As funes \fBlrand48()\fP e \fBnrand48()\fP retornam inteiros longos
no-negativos distribuidos uniformemente entre 0 e 2^31.
.PP
As funes \fBmrand48()\fP e \fBjrand48()\fP retornam inteiros longos
com sinal distribuidos uniformemente entre \-2^31 and 2^31.
.PP
As funes \fBsrand48()\fP, \fBseed48()\fP e \fBlcong48()\fP so funes
de inicializao, as quais deve ser chamadas antes do uso de
\fBdrand48()\fP, \fBlrand48()\fP ou \fBmrand49()\fP. As funes
\fBerand48()\fP, \fBnrand48()\fP e \fBjrand48()\fP no requerem
a chamada da funo de inicializao primeiro.
.PP
Todas as funes trabalham gerando uma sequencia de inteiros 48-bit,
\fIXi\fP, de acordo com a formula de congruncia linear:
.sp
.nf
.RS
.B Xn+1 = (aXn + c) mod m, onde n >= 0
.RE
.fi
.sp
O parmetro \fIm\fP = 2^48, portanto uma aritmtica de inteiro 48-bit realizada.
A no ser que \fBlcong48()\fP seja chamada, \fIa\fP e \fIc\fP so obtidos por:
.sp
.nf
.RS
.B a = 0x5DEECE66D
.B c = 0xB
.RE
.fi
.sp
O valor retornado por qualquer uma das funes \fBdrand48()\fP, \fBerand48()\fP,
\fBlrand48()\fP, \fBnrand48()\fP, \fBmrand48()\fP ou \fBjrand48()\fP
computado para primeira gerao do prximo 48-bit \fIXi\fP na sequncia.
Ento, o nmero apropriado de bits, de acordo com o tipo de item de dado a
ser retornado, copiado dos bits de mais alta ordem de \fIXi\fP e transformado
no valor retornado.
.PP
As funes \fBdrand48()\fP, \fBlrand48()\fP e \fBmrand48()\fP armazenam
o ltimo 48-bit \fIXi\fP gerado em um buffer interno. As funes
\fBerand48()\fP, \fBnrand48()\fP e \fBjrand48()\fP requerem que o programa
chamador providencie armazenamento para os valores sucessivos de \fIXi\fP no
argumento vetor \fIxsubi\fP. As funes so inicializadas pela colocao do
valor inicial de \fIXi\fP no vetor antes da primeira chamada as funes.
.PP
A funo de inicializao \fBsrand48()\fP ajusta os 32-bits de mais alta ordem
de \fIXi\fP para o argumento \fIseedval\fP. Os 16-bits de mais baixa ordem
so ajustados arbitrariamente para o valor 0x330E.
.PP
A funo de inicializao \fBseed48()\fP seta o valor de \fIXi\fP para
o valor 48-bit especificado no argumento vetor \fIseed16v\fP. O valor
anterior de \fIXi\fP copiado em um buffer interno e um ponteiro
para esse buffer retornado por \fBseed48()\fP.
.PP
A funo de inicializao \fBlcong48()\fP permite ao usurio especificar
valores iniciais para \fIXi\fP, \fIa\fP e \fIc\fP. O elemento \fIparam[0-2]\fP
do argumento vetor especifica \fIXi\fP, \fIparam[3-5]\fP especifica
\fIa\fP, e \fIparam[6]\fP especifica \fIc\fP. Aps a chamada de
\fBlcong48()\fP, uma chamada subsequente a \fBsrand48()\fP ou
\fBseed48()\fP ir restaurar os valores padro de \fIa\fP e \fIc\fP.
.SH "CONFORMIDADE"
SVID 3
.SH NOTAS
Essas funes so declaradas obsoletas por SVID 3, o qual indica que
rand(3) deve ser usado em seu lugar.
.SH "VEJA TAMBM"
.BR rand "(3), " random (3)
.SH TRADUZIDO POR LDP-BR em 21/08/2000.
\&\fR\&\f(CWMarcelo D. Beckmann <marcelobeckmann@yahoo.com> (traduo)\fR
\&\fR\&\f(CWEspao para o Revisor <nome@dominio.com.br> (reviso)\fR
|