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