NAZWA¶
rand, srand - generator liczb losowych.
SKŁADNIA¶
#include <stdlib.h>
int rand(void);
void srand(unsigned int seed);
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
Funkcja
rand() zwraca pseudolosową liczbę całkowitą z
zakresu pomiędzy 0 a
RAND_MAX.
Funkcja
srand() ustawia swój argument jako wartość
początkową dla nowego ciągu pseudolosowych liczb
całkowitych zwracanych przez
rand(). Ciągi te są
powtarzalne poprzez wywołanie
srand() z tą samą
wartością początkową.
Jeśli nie podano wartości początkowej, funkcja
rand()
automatycznie ustawia tę wartość na 1.
WARTOŚĆ ZWRACANA¶
Funkcja
rand() zwraca wartość z zakresu pomiędzy 0 a
RAND_MAX. Funkcja
srand() nie zwraca żadnej wartości.
UWAGI¶
Wersje
rand() i
srand() w bibliotece C Linuksa korzystają z
tego samego generatora liczb losowych, co
random() i
srandom(),
więc mniej znaczące bity powinny być tak samo losowe jak bity
bardziej znaczące. Jednakże, w starszych implementacjach
rand() bity mniej znaczące są znacznie mniej losowe niż
bity bardziej znaczące.
W
Numerical Recipes in C: The Art of Scientific Computing (William H.
Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York:
Cambridge University Press, 1992 (wyd. 2, str. 277)), umieszczono
następujące komentarze:
"Jeśli chcesz wygenerować
liczbę losową spomiędzy 1 a 10, powinieneś zawsze
robić to korzystając z bardziej znaczących bitów, jak w
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
a nigdy z czegoś podobnego do
(co korzysta z mniej znaczących bitów)."
Generacja liczb losowych jest złożonym zagadnieniem. Książka
Numerical Recipes in C (patrz referencje powyżej) zawiera
doskonałą dyskusję praktycznych wyników generacji liczb
losowych w rozdziale 7 (Random Numbers).
Bardziej teoretyczną dyskusję, która również szeroko
omawia wiele praktycznych wyników można znaleźć w
rozdziale 3 (Random Numbers) Donalda E. Knutha
The Art of Computer
Programming, tom 2 (Seminumerical Algorithms), wyd. 2; Reading,
Massachusetts: Addison-Wesley Publishing Company, 1981.
ZGODNE Z¶
SVID 3, BSD 4.3, ISO 9899
ZOBACZ TAKŻE¶
random(3),
srandom(3),
initstate(3),
setstate(3)
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 3 rand
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.