rand

Autres langues

Langue: pl

Autres versions - même langue

Version: 1995-05-18 (openSuse - 09/10/07)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

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)