Provided by: manpages-de-dev_1.11-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

       Die  Funktion  random() liefert einen Wert zwischen 0 und RAND_MAX zurück. Die Funktion srandom() liefert
       keinen Wert zurück.

       Die Funktion initstate() gibt einen Zeiger auf das vorige Zustandsfeld  zurück.  Bei  einem  Fehler  wird
       errno entsprechend gesetzt.

       Bei  Erfolg  gibt initstate() einen Zeiger auf das vorige Zustandsfeld zurück. Bei einem Fehler wird NULL
       zurückgegeben und errno entsprechend gesetzt.

FEHLER

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

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

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌─────────────────────────┬───────────────────────┬─────────┐
       │ SchnittstelleAttributWert    │
       ├─────────────────────────┼───────────────────────┼─────────┤
       │ random(), srandom(),    │ Multithread-Fähigkeit │ MT-Safe │
       │ initstate(), setstate() │                       │         │
       └─────────────────────────┴───────────────────────┴─────────┘

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, 4.3BSD.

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

       Laut POSIX sollte initstate() im Fehlerfall NULL zurückliefern. In der  Glibc-Implementierung  wird  (wie
       spezifiziert) errno im Fehlerfall gesetzt, aber die Funktion liefert nicht NULL zurück.

SIEHE AUCH

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

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  4.04  des Projekts Linux-man-pages. Eine Beschreibung des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother  <krd@gulu.net>,  Martin  Eberhard
       Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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>.

GNU                                              8. August 2015                                        RANDOM(3)