DOKK / manpages / debian 10 / manpages-pl-dev / rand_r.3.pl
RAND(3) Podręcznik programisty Linuksa RAND(3)

rand, srand - generator liczb losowych.

#include <stdlib.h>

int rand(void);

void srand(unsigned int seed);

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.

Funkcja rand() zwraca wartość z zakresu pomiędzy 0 a RAND_MAX. Funkcja srand() nie zwraca żadnej wartości.

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.

SVID 3, BSD 4.3, ISO 9899

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/.

1995-05-18 GNU