Rechercher une page de manuel
drand48
Langue: pl
Version: 1993-07-02 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
NAZWA
drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - generowanie jednolicie roz³o¿onych liczb pseudolosowychSK£ADNIA
#include <stdlib.h> double drand48(void); double erand48(unsigned short xsubi[3]); long int lrand48(void); long int nrand48(unsigned short xsubi[3]); long int mrand48(void); long int jrand48(unsigned short xsubi[3]); void srand48(long int seedval); unsigned short *seed48(unsigned short seed16v[3]); void lcong48(unsigned short param[7]);
OPIS
Funkcje te generuj± liczby pseudolosowe korzystaj±c z liniowego algorytmu kongruencyjnego i 48-bitowej arytmetyki liczb ca³kowitych.Funkcje drand48() i erand48() zwracaj± nieujemne zmiennoprzecinkowe warto¶ci podwójnej precyzji równomiernie roz³o¿one w przedziale [0.0, 1.0].
Funkcje lrand48() i nrand48() zwracaj± nieujemne warto¶ci long integer równomiernie roz³o¿one w przedziale pomiêdzy 0 a 2^31.
Funkcje mrand48() i jrand48() zwracaj± warto¶ci long integer ze znakiem równomiernie roz³o¿one w przedziale pomiêdzy -2^31 a 2^31.
Funkcje srand48(), seed48() i lcong48() to funkcje inicjuj±ce. Jedna z nich powinna zostaæ wywo³ana przed u¿yciem funkcji drand48(), lrand48() czy mrand48(). Funkcje erand48(), nrand48() i jrand48() nie wymagaj± wcze¶niejszego wywo³ania funkcji inicjuj±cej.
Wszystkie te funkcje generuj± ci±g 48-bitowych liczb ca³kowitych Xi, wed³ug liniowego wzoru kongruencyjnego:
- Xn+1 = (aXn + c) mod m, gdzie n >= 0
Parametr m = 2^48, jako ¿e korzystamy z 48-bitowej arytmetyki. Je¶li nie wywo³ano lcong48(), a i c s± zadane jako:
- a = 0x5DEECE66D c = 0xB
Warto¶æ zwracana przez ka¿d± z funkcji drand48(), erand48(), lrand48(), nrand48(), mrand48() czy jrand48() jest obliczana poprzez wygenerowanie nastêpnego 48-bitowego Xi z ci±gu, a nastêpnie skopiwanie odpowiedniej ilo¶ci bardziej znacz±cych bitów Xi, zale¿nej od zwracanego typu danych, i przekszta³cenie ich w zwracan± warto¶æ.
Funkcje drand48(), lrand48() i mrand48() przechowuj± ostatni± 48-bitow± warto¶æ Xi w wewnêtrznym buforze. Funkcje erand48(), nrand48() i jrand48() wymagaj± od wywo³uj±cego je programu zapawnienia miejsca dla kolejnych warto¶ci Xi w tablicy xsubi podanej jako argument. Te funkcje s± inicjowane poprzez umieszczenie w tablicy pocz±tkowych warto¶ci Xi przed pierwszym wywo³aniem funkcji.
Funkcja inicjuj±ca srand48() wpisuje warto¶æ argumentu seedval do Xi, ustawiaj±c 32 bardziej znacz±ce bity. Mniej znacz±cym 16 bitom zawsze nadawana jest warto¶æ 0x330E.
Funkcja inicjuj±ca seed48() zmienia warto¶æ Xi na 48-bitow± warto¶æ podana w tablicy seed16v. Poprzednia warto¶æ Xi jest kopiowana do wewnêtrznego bufora, a wska¼nik do tego bufora jest zwracany przez funkcjê seed48().
Funkcja inicjuj±ca lcong48() pozwala okre¶liæ pocz±tkowe warto¶ci dla Xi, a oraz c. Elementy tablicy param[0-2] okre¶laj± Xi, param[3-5] okre¶laj± a, a param[6] okre¶la c. Po wywo³aniu lcong48() ka¿de nastêpne wywo³anie srand48() czy seed48() przywróci standardowe warto¶ci a i c.
ZGODNE Z
SVID 3UWAGI
Te funkcje s± uznane przez SVID 3 za przestarza³e, zamiast nich powinna byæ u¿ywana funkcja rand(3).ZOBACZ TAK¯E
rand(3), random(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre