Provided by: manpages-pl-dev_0.7-1_all bug

NAZWA

       drand48,  erand48,  lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - generowanie jednolicie
       rozłożonych liczb pseudolosowych

SKŁADNIA

       #include <stdlib.h>

       double drand48(void);

       double erand48(unsigned short xsubi[3]);

       long int lrand48(void);

       long int nrand48(unsigned short xsubi[3]);

       long int mrand48(void);

       long int jrand48(unsigned short xsubi[3]);

       void srand48(long int seedval);

       unsigned short *seed48(unsigned short seed16v[3]);

       void lcong48(unsigned short param[7]);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       Wszystkie funkcje powyżej: _XOPEN_SOURCE
           || /* Glibc od 2.19: */ _DEFAULT_SOURCE
           || /* Glibc w wersji <= 2.19: */ _SVID_SOURCE

OPIS

       Funkcje te generują liczby pseudolosowe korzystając z liniowego algorytmu  kongruencyjnego  i  48-bitowej
       arytmetyki liczb całkowitych.

       Funkcje   drand48()  i  erand48()  zwracają  nieujemne  zmiennoprzecinkowe  wartości  podwójnej  precyzji
       równomiernie rozłożone w przedziale [0.0, 1.0).

       Funkcje lrand48()  i  nrand48()  zwracają  nieujemne  wartości  long  integer  równomiernie  rozłożone  w
       przedziale [0, 2^31).

       Funkcje  mrand48()  i  jrand48()  zwracają  wartości  long  integer  ze  znakiem równomiernie rozłożone w
       przedziale [-2^31, 2^31).

       Funkcje srand48(), seed48() i lcong48() to funkcje inicjujące. Jedna z nich powinna zostać wywołana przed
       użyciem funkcji drand48(), lrand48() czy mrand48(). Funkcje erand48(), nrand48() i jrand48() nie wymagają
       wcześniejszego wywołania funkcji inicjującej.

       Wszystkie  te  funkcje  generują  ciąg  48-bitowych  liczb  całkowitych   Xi   według   liniowego   wzoru
       kongruencyjnego:

              Xn+1 = (aXn + c) mod m, gdzie n >= 0

       Parametr  m  =  2^48,  ponieważ  korzystamy  z  48-bitowej  arytmetyki.  Jeśli nie wywołano lcong48(), to
       parametry a i c przyjmują wartości:

              a = 0x5DEECE66D
              c = 0xB

       Wartość zwracana przez  każdą  z  funkcji  drand48(),  erand48(),  lrand48(),  nrand48(),  mrand48()  czy
       jrand48()  jest  obliczana przez wygenerowanie następnego 48-bitowego Xi z ciągu, a następnie skopiowanie
       odpowiedniej liczby bardziej znaczących bitów Xi, zależnej od zwracanego typu danych,  i  przekształcenie
       ich w zwracaną wartość.

       Funkcje drand48(), lrand48() i mrand48() przechowują ostatnią 48-bitową wartość Xi w wewnętrznym buforze.
       Funkcje erand48(), nrand48() i jrand48() wymagają od wywołującego je  programu  zapewnienia  miejsca  dla
       kolejnych  wartości Xi w tablicy xsubi podanej jako argument. Te funkcje są inicjowane przez umieszczenie
       w tablicy początkowych wartości Xi przed pierwszym wywołaniem funkcji.

       Funkcja inicjująca srand48() wpisuje wartość argumentu seedval do Xi,  ustawiając  32  bardziej  znaczące
       bity. Mniej znaczącym 16 bitom zawsze nadawana jest wartość 0x330E.

       Funkcja  inicjująca  seed48()  zmienia  wartość  Xi  na  48-bitową wartość podaną w argumencie tablicowym
       seed16v. Poprzednia wartość Xi jest kopiowana do wewnętrznego bufora, a  wskaźnik  do  tego  bufora  jest
       zwracany przez funkcję seed48().

       Funkcja  inicjująca  lcong48()  pozwala  określić  początkowe wartości dla Xi, a oraz c. Elementy tablicy
       param[0-2] określają Xi, param[3-5] określają a, a param[6]  określa  c.  Po  wywołaniu  lcong48()  każde
       następne wywołanie srand48() czy seed48() przywróci standardowe wartości a i c.

ATRYBUTY

       Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

       ┌──────────────────────┬────────────────────────┬────────────────────────┐
       │InterfejsAtrybutWartość                │
       ├──────────────────────┼────────────────────────┼────────────────────────┤
       │drand48(), erand48(), │ Bezpieczeństwo wątkowe │ MT-Unsafe race:drand48 │
       │lrand48(), nrand48(), │                        │                        │
       │mrand48(), jrand48(), │                        │                        │
       │srand48(), seed48(),  │                        │                        │
       │lcong48()             │                        │                        │
       └──────────────────────┴────────────────────────┴────────────────────────┘
       Powyższe  funkcje  zapisują  globalne  informacje  o  stanie  generatora  liczb losowych, tak więc nie są
       bezpieczne dla wątków.

ZGODNE Z

       POSIX.1-2001, POSIX.1-2008, SVr4.

ZOBACZ TAKŻE

       rand(3), random(3)

O STRONIE

       Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis  projektu,  informacje
       dotyczące   zgłaszania   błędów   oraz   najnowszą   wersję   oryginału   można   znaleźć   pod   adresem
       https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Adam  Byrtek  (PTM)  <alpha@irc.pl>,
       Andrzej  Krzysztofowicz  (PTM)  <ankry@green.mf.pg.gda.pl>,  Robert  Luberda <robert@debian.org> i Michał
       Kułach <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie  błędów  na  stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  4.07 oryginału.

                                                   2016-03-15                                         DRAND48(3)