Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
rand, srand - generator liczb losowych.
SKŁADNIA
#include <stdlib.h>
int rand(void);
void srand(unsigned int seed);
OPIS
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
j=1+(rand() % 10);
(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)