Provided by: manpages-pl-dev_4.18.1-1_all bug

NAZWA

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

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <stdlib.h>

       double drand48(void);
       double erand48(unsigned short xsubi[3]);

       long lrand48(void);
       long nrand48(unsigned short xsubi[3]);

       long mrand48(void);
       long jrand48(unsigned short xsubi[3]);

       void srand48(long 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 >= 2.19: */ _DEFAULT_SOURCE
               || /* glibc <= 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).

       The lrand48()   and  nrand48()   functions  return  nonnegative  long  integers  uniformly
       distributed over the interval [0, 2^31).

       The  mrand48()  and jrand48()  functions return signed long integers uniformly distributed
       over the interval [-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

       The  parameter  m  = 2^48, hence 48-bit integer arithmetic is performed.  Unless lcong48()
       is called, a and c are given by:

           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(), lrand48(),       │ Bezpieczeństwo wątkowe │ MT-Unsafe race:drand48 │
       │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.

STANDARDY

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

ZOBACZ TAKŻE

       rand(3), random(3)

TŁUMACZENIE

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

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją. Bliższe informacje o warunkach licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   lub   nowszej.   Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.