GMP: Zufallszahlen

L

larry

Tripel-As
Hallo,

beschäftige mich gerade mit der GMP-Library, speziell Zufallszahlen. Mir ist noch nicht ganz klar, warum man gmp_randseed() braucht bzw. für was diese Funktion gut ist. :think:
Wenn mein Programm aufgerufen wird und es gibt nur eine Zufallszahl aus, die jedes mal verschieden sein soll, fütter ich die Funktion gmp_randseed() am besten mit Werten aus /dev/random?
Warum wird überhaupt immer die gleiche Zahl beim Aufruf des Programms ausgegeben? Wer will sowas? Also warum wird nicht automatisch "gesäht"?
Schon mal Danke
larry
 
Zufallszahlen, die auf einem Rechner erzeugt werden, sind immer Pseudozufallszahlen, d. h. sie sind nicht im stochastischen Sinne zufällig, sondern Zahlenfolgen ("Ströme"), in denen alle Werte im Voraus bestimmt sind, bzw. voneinader abhängen. Zu deren Erzeugung werden einfach zu berechnende, deterministische Funktionen verwandt, z. B. lineare Kongruenzgeneratoren. Der "Seed" ist der eben Startwert, der die Ströme initialisiert, bei Lehmers LKG das y1.

Übrigens: Dass die Zahlen für denselben Startwert immer gleich sind, ist eine gewollte und wichtige Eigenschaft, um Simulationen notfalls debuggen zu können.

Wie man mit den RNGs von GMP umgeht, steht doch in der Manual:
http://gmplib.org/manual/Random-State-Seeding.html#Random-State-Seeding
 
Zuletzt bearbeitet:

Ähnliche Themen

doppelte srand() initialisierung

C Programm unter Unix

C Funktion in einer Schleife ausführen (Funktion wird nur 1 mal ausgeführt)

fußballstatistik auswerten

"Probleme" mit einem Kernelmodul

Zurück
Oben