random

Autres langues

Langue: pl

Autres versions - même langue

Version: 2000-08-20 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

NAZWA

random, srandom, initstate, setstate - generator liczb losowych

SK£ADNIA


#include <stdlib.h>



long int random(void);

void srandom(unsigned int seed);

char *initstate(unsigned int seed, char *state, size_t n);

char *setstate(char *state);

OPIS

Funkcja random() korzysta z generatora liczb losowych opartego na nieliniowych addytywnych przesuniêciach, stosuj±cego domy¶ln± tablicê o rozmiarze 31 d³ugich liczb ca³kowitych do zwracania kolejnych liczb pseudolosowych z zakresu pomiêdzy 0 a RAND_MAX. Okres tego generatora liczb losowych jest bardzo du¿y, wynosi oko³o 16*((2**31)-1).

Funkcja srandom() ustawia swój argument jako warto¶æ pocz±tkow± dla nowego ci±gu pseudolosowych liczb ca³kowitych zwracanych przez random(). Ci±gi te s± powtarzalne poprzez wywo³anie srandom() z t± sam± warto¶ci± pocz±tkow±. Je¶li nie podano warto¶ci pocz±tkowej, funkcja random() automatycznie ustawia tê warto¶æ na 1.

Funkcja initstate() pozwala na inicjalizacjê tablicy stanów state w celu wykorzystania jej przez random(). initstate() wykorzystuje rozmiar tablicy stanów n do podjêcia decyzji o tym, jakiego wymy¶lnego generatora liczb losowych powinna u¿ywaæ --- im wiêksza tablica stanów, tym lepszy bêdzie generator liczb losowych. seed jest warto¶ci± pocz±tkow± dla inicjalizacji, która okre¶la punkt startu ci±gu generatora liczb losowych oaz zapewnia restart w tym samym punkcie.

Funkcja setstate() zmienia tablicê stanów wykorzystywan± przez funkcjê random(). Tablica stanu state jest u¿ywana do generacji liczb losowych a¿ do nastêpnego wywo³ania initstate() lub setstate(). state musi byæ uprzednio zainicjalizowana za pomoc± initstate() lub byæ wynikiem wcze¶niejszego wywo³ania setstate().

WARTO¦Æ ZWRACANA

Funkcja random() zwraca warto¶ci pomiêdzy 0 a RAND_MAX. Funkcja srandom() nie zwraca ¿adnej warto¶ci. Funkcje initstate() i setstate() zwracaj± wska¼nik do poprzedniej tablicy stanów lub NULL w przypadku b³êdu.

B£ÊDY

EINVAL
Podano mniejsz± ni¿ 8-bajtow± tablicê stanów dla initstate().

UWAGI

Obecnie "optymalnymi" warto¶ciami dla rozmiaru tablicy stanów n s± 8, 32, 64, 128 i 256 bajtów; inne warto¶ci bêd± zaokr±glane w dó³ do najbli¿szej znanej warto¶ci. U¿ycie mniej ni¿ 8 bajtów spowoduje b³±d.

ZGODNE Z

BSD 4.3

ZOBACZ TAK¯E

rand(3), srand(3)