Provided by:
manpages-de-dev_0.5-4.1ubuntu1_all 
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, int n);
char *setstate(char *state);
BESCHREIBUNG
Die random()-Funktion benutzt einen Zufallsgenerator mit nicht-linearem
additiven Feedback mit einer vorgegebenen Tabellengröße von 31 long
integers um aufeinanderfolgende Pseudozufallszahlen im Rahmen 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 als Ursprung für eine neue
Folge von Pseudozufalls-Ganzzahlen, welche von random() geliefert
werden. Diese Folgen sind wiederholbar durch Aufruf von srandom() mit
dem gleichen Ursprungswert. Wenn keine Ursprungswert angegeben wird
random() automatisch mit dem Ursprungswert 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 ein Zufallszahlengenerator benutzen soll — je größer
das Zustandsfeld, desto besser die Zufallszahlen seed ist der
Ursprungswert für die Initialisierung, welcher den Startpunkt für den
Zufallszahlenfolge angibt und sicherstellt zum erneuten Starten am
gleichen Punkt.
Die Funktion setstate() ändert das Zustandsfeld, welches von der
Funktion random() benutzt wird. Das Zustandsfeld state wird zum
Erzeugen der Zufallszahlen benutzt bis zum nächsten Aufruf von
initstate() oder setstate(). state muss zuerst initialisiert werden
durch Benutzen von initstate().
RÜCKGABEWERT
Die Funktion random() liefert einen Wert zwischen 0 und RAND_MAX. Die
Funktion srandom() liefert keinen Wert zurück. Die Funktionen
initstate() und setstate() liefert einen Zeiger auf das vorherige
Zustandsfeld.
FEHLER
EINVAL Ein Zustandsfeld von weniger als 8 Byte wurde an initstate()
übergeben.
BEMERKUNGEN
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 erzeugt
einen Fehler.
KONFORM ZU
BSD 4.3
SIEHE AUCH
rand(3), srand(3).