Provided by: manpages-pl-dev_20060617-1_all bug

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)