tail head cat sleep
QR code linking to this page

Manpage  — RAND

BEZEICHNUNG

rand, srand - Zufallszahlengenerator

INHALT

ÜEBERSICHT

#include <stdlib.h> 

int rand(void);

void srand(unsigned int seed);

BESCHREIBUNG

Die Funktion rand() liefert eine Pseudozufalls-Ganzzahl (integer) zwischem 0 und RAND_MAX.

Die Funktion srand() setzt ihr Argument als Ursprung für eine neue Reihe von Pseudozufalls-Ganzzahlen ein, welche von rand() geliefert werden. Diese Sequenzen sind durch Aufruf von srand() mit dem selben Ursprungswert wiederholbar.

Wenn kein Ursprungswert angegeben wird, wird 1 als Ursprungswert für rand() angenommen.

RÜCKGABEWERT

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

ANMERKUNGEN

Die Versionen von rand() und srand() in der Linux C-Bibliothek benutzen den selben Zufallszahlengenerator wie random() und srandom(), d.h. niederwerte Bits sind genauso zufällig wie höherwertige Bits. Bei älteren Implementationen von rand() sind niederwerte Bits jedoch viel weniger zufällig als höherwertige Bits.

In 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, 1990 (1st ed, p. 207)), finden sich die folgenden Kommentare:

"Wenn Sie Zufalls-Ganzzahlen zwischen 1 und 10 erzeugen möchten, sollten Sie dies immer wie folgt tun:

j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

und niemals auf folgene oder ähnliche Weise:

j=1+((int) (1000000.0*rand()) % 10);

(wodurch niederwerte Bits benutzt würden)."

Zufallszahlenerzeugung ist ein kompliziertes Thema. Das Buch Numerical Recipes in C (siehe oben) liefert eine exzellente Diskussion über praktische Zufallszahlenerzeugung in Kapitel 7 (Zufallszahlen).

Für eine mehr theoretische Diskussion, die auch viele praktische Aspekte behandelt, sehen Sie bitte Kapitel 3 (Zufallszahlen) in Donald E. Knuths The Art of Computer Programming, volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.

KONFORM ZU

SVID 3, BSD 4.3, ISO 9899

SIEHE AUCH

random(3), srandom(3), initstate(3), setstate(3).


18. Mai 1996 RAND (3) GNU

tail head cat sleep
QR code linking to this page


Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.