Provided by: manpages-de-dev_4.27.0-1_all bug

BEZEICHNUNG

       random, srandom, initstate, setstate - Zufallszahlengenerator

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <stdlib.h>

       long random(void);
       void srandom(unsigned int zstart);

       char *initstate(unsigned int zstart, char zustand[.n], size_t n);
       char *setstate(char *zustand);

   Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

       random(), srandom(), initstate(), setstate():
           _XOPEN_SOURCE >= 500
               || /* Glibc >= 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

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 2^31 - 1 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  Ganzzahlen,  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  zustand  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. Derzeit sind »optimale« Werte für die Größe des Zustandsfelds n 8, 32, 64, 128 und 256
       Byte; andere Größen werden zu dem nächsten bekannten Wert abgerundet. Die Verwendung von  weniger  als  8
       Byte  führt  zu einem Fehler. zstart 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  zustand  wird  bis  zum  nächsten  Aufruf  von initstate() oder setstate() zum Erzeugen der
       Zufallszahlen benutzt . zustand muss dafür initialisiert worden sein: durch den  Aufruf  von  initstate()
       oder setstate().

RÜCKGABEWERT

       Die Funktion random() liefert einen Wert zwischen 0 und (2^31) - 1 zurück. Die Funktion srandom() liefert
       keinen Wert zurück.

       Die  Funktion  initstate()  gibt  einen  Zeiger  auf das vorige Zustandsfeld zurück. Bei einem Fehlschlag
       liefert sie NULL zurück und setzt errno, um den Fehler anzuzeigen.

       Bei Erfolg gibt initstate() einen Zeiger auf das vorige Zustandsfeld zurück. Bei einem Fehlschlag liefert
       sie NULL zurück und setzt errno, um den Fehler anzuzeigen.

FEHLER

       EINVAL Das an setstate() übergebene zustand-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(), initstate(), setstate()                      │ Multithread-Fähigkeit │ MT-Sicher │
       └───────────────────────────────────────────────────────────────────┴───────────────────────┴───────────┘

STANDARDS

       POSIX.1-2008.

GESCHICHTE

       POSIX.1-2001, 4.3BSD.

ANMERKUNGEN

       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.

WARNUNGEN

       Die  Funktion  random()  sollte  nicht  in  Programmen  mit  mehreren Threads, bei denen reproduzierbares
       Verhalten benötigt wird, verwandt werden. Nutzen Sie für diesen Anwendungsfall stattdessen random_r(3).

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

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

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Martin Eberhard
       Schauer  <Martin.E.Schauer@gmx.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  und  Dr.  Tobias
       Quathamer <toddy@debian.org> 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  die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                              2. Mai 2024                                         random(3)