oracular (3) seed48.3.gz

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

NAZWA

       drand48,  erand48,  lrand48,  nrand48,  mrand48,  jrand48, srand48, seed48, lcong48 - generuje jednolicie
       rozłożone liczby pseudolosowe

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).

       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(), lrand48(), nrand48(), mrand48(),      │ Bezpieczeństwo wątkowe │ MT-niebezpieczne │
       │jrand48(), srand48(), seed48(), lcong48()                   │                        │ race:drand48     │
       └────────────────────────────────────────────────────────────┴────────────────────────┴──────────────────┘
       Powyższe  funkcje  zapisują  globalne  informacje  o  stanie  generatora  liczb losowych, tak więc nie są
       bezpieczne dla wątków.

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001, 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⟩.