Provided by: manpages-pl-dev_0.7-2_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)