Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       random, srandom, initstate, setstate - Zufallszahlengenerator

ÜBERSICHT

       #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);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       random(), srandom(), initstate(), setstate():
           _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

BESCHREIBUNG

       Die  Funktion  random()  benutzt   einen   Zufallsgenerator   mit   nichtlineareradditiver
       Rückkopplung  (Feedback)  mit  einer vorgegebenen Tabellengröße von 31 »long integers«, um
       aufeinander folgende Pseudozufallszahlen im Bereich von 0 bis RAND_MAX zurückzugeben.  Die
       Periode dieses Zufallszahlengenerators ist sehr groß, ungefähr 16 * ((2^31) - 1).

       Die  Funktion  srandom() setzt ihr Argument zur Initialisierung (als »Saat«) für eine neue
       Folge von pseudozufälligen Integers, welche von random() geliefert  werden.  Diese  Folgen
       sind  wiederholbar  durch  Aufruf  von  srandom()  mit der gleichen Saat. Falls keine Saat
       angegeben wird, wird random() automatisch mit dem Wert 1 gestartet.

       Die Funktion initstate() erlaubt  es,  ein  Zustandsfeld  state  für  den  Gebrauch  durch
       random()  zu  initialisieren. Die Größe n des Zustandsfeldes wird von initstate() benutzt,
       um zu entscheiden wie differenziert es einen Zufallszahlengenerator  benutzen  soll  —  je
       größer  das  Zustandsfeld,  desto  besser  die  Zufallszahlen.  seed  ist der Wert für die
       Initialisierung, welcher den Startpunkt für den Zufallszahlenfolge angibt und  ermöglicht,
       am gleichen Punkt erneut zu starten.

       Die Funktion setstate() ändert das Zustandsfeld, welches von der Funktion random() benutzt
       wird. Das Zustandsfeld state wird bis zum nächsten Aufruf von initstate() oder  setstate()
       zum Erzeugen der Zufallszahlen benutzt . state muss dafür initialisiert worden sein: durch
       den Aufruf von initstate() oder setstate().

RÜCKGABEWERT

       The random()  function returns a value between 0 and  RAND_MAX.  The  srandom()   function
       returns no value.

       The  initstate()   function returns a pointer to the previous state array. On error, errno
       is set to indicate the cause.

       On success, setstate()  returns a pointer to  the  previous  state  array.  On  error,  it
       returns NULL, with errno set to indicate the cause of the error.

FEHLER

       EINVAL Das an setstate() übergebene state-Argument war NULL.

       EINVAL Ein Zustandsfeld von weniger als 8 Byte wurde an initstate() übergeben.

KONFORM ZU

       4.3BSD, POSIX.1-2001.

ANMERKUNGEN

       Aktuelle  »optimale«  Werte für die Größe n des Zustandsfeldes sind 8, 32, 64, 128 und 256
       Byte; andere Werte werden abgerundet auf  den  nächsten  bekannten  Wert.  Verwendung  von
       weniger als 8 Byte verursacht einen Fehler.

       Diese Funktion sollte nicht verwendet werden, wenn mehrere Threads random() nutzen und das
       Verhalten reproduzierbar sein sollte. Nutzen Sie  für  diesen  Anwendungsfall  stattdessen
       random_r(3).

       Die  Erzeugung  von Zufallszahlen ist eine schwierige Aufgabe. Numerical Recipes in C: The
       Art of Scientific Computing (William H. Press,  Brian  P.  Flannery,  Saul  A.  Teukolsky,
       William  T.  Vetterling;  New  York: Cambridge University Press, 2007, 3rd ed.) enthält in
       Kapitel 7 (Random Numbers) eine ausgezeichnete Diskussion der Probleme bei der praktischen
       Erzeugung von Zufallszahlen.

       Eine  eher  theoretische  Diskussion, die auch viele praktische Probleme aufgreift, finden
       Sie in Kapitel 3 (Random Numbers) in Donald E. Knuths The  Art  of  Computer  Programming,
       Volume  2  (Seminumerical  Algorithms),  2nd  ed.;  Reading, Massachusetts: Addison-Wesley
       Publishing Company, 1981.

FEHLER

       According to POSIX, initstate()  should return NULL on error. In the glibc implementation,
       errno is (as specified) set on error, but the function does not return NULL.

SIEHE AUCH

       drand48(3), rand(3), random_r(3), srand(3)

KOLOPHON

       This  page  is  part  of release 3.54 of the Linux man-pages project. A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und
       Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.