Mailinglist Archive: opensuse-programming-de (174 mails)

< Previous Next >
Re: rand, srand und seed
  • From: Michael Detambel <detambel@xxxxxxxxxxxxxxxxx>
  • Date: Mon, 12 Jan 2004 09:34:09 +0100
  • Message-id: <40025C01.4040005@xxxxxxxxxxxxxxxxx>
Michael Wenger schrieb:

Das oben erklärte bezieht sich allgemein auf Pseudozufallszahlen. Leider weiß ich nicht, wie rand() in C genau implementiert ist.
Wenn ich mich im Bezug auf rand() in C täusche, wird sich sicherlich jemand melden und mich verbessern ;-)

Hallo Michael et. al.:

Die rand()-Funktion arbeitet nach der Formel
x = (a * x + c) % m
(% ist der Modulo-Operator)
wobei x die erzeugte Zufallszahl ist (die für den nächsten Aufruf in der C-Bibliothek zwischengespeichert wird) und a, c, m Konstanten sind, die so ausgewählt sind, dass die erzeugten Zahlen möglichst gut eine Gleichverteilung approximieren, zum Beispiel (ich glaube, im Berkeley-Compiler) a = 1103515245, c = 12345 und m = 2^31. m ist die Periode, d. h. nach 2^31 Durchläufen wiederholen sich die Zahlen.

Freundliche Grüße
Michael Detambel
BFW Oberhausen






< Previous Next >
Follow Ups