Zufallszahlen - RANDOMIZE / RND()

Zufallszahlen zu erzeugen, scheint schwieriger zu sein, als man denkt: Zufallsgenerator (Wikipedia).
Zum Glück müssen wir uns damit nicht beschäftigen, sondern können auf die R-Basic-Funktionen RANDOMIZE und RND() zurückgreifen, deren Zahlen für unsere Zwecke zufällig genug sein dürften.

RANDOMIZE

RANDOMIZE startet den in PC/GEOS enthaltenen Zufallsgenerator und liefert der Funktion RND() einen zufälligen Startwert. RANDOMIZE sollte im R-Basic-Programm nur einmal aufgerufen werden und möglichst am Anfang des Programms stehen.
   RANDOMIZE

RND()

RND() liefert eine Zahl von Null (einschließlich) bis zum angegebenen Maximalwert (ausschließlich) d.h. der Maximalwert selbst wird nie erreicht. Ausserdem enthält die Zahl mehrere Nachkommstellen, die mit der Funktion INT entfernt werden können. Bei einem Maximalwert von 49 sind mögliche Ergebnisse also 0.3578 oder 48.999, nicht aber 49.000. (in R-Basic wird statt des Kommas der Punkt als Trennzeichen verwendet).

Intern arbeitet RND() mit Zahlen zwischen 0.0000 und 0.9999, das Ergebnis ist demnach immer kleiner als 1. Für die zufällig gezogene Zahl 49 könnte RND() z.B. 48.831 als Ergebnis liefern. Wenn Sie mit der Funktion INT die Nachkommastellen entfernen, bleibt 48 als Ergebnis übrig.

Das folgende Beispiel erzeugt eine Zufallszahl zwischen 0 und 48.9999 (als Maximalwert ist 49 angegeben). Das Ergebnis enthält mehrere Nachkommastellen:

   49 * RND()

Um stattdessen eine Zufallszahl zwischen 1 und 49 zu erhalten, also die 0 vom Ergebnis auszuschliessen und die 49 einzuschließen, zählen Sie eine 1 zum Ergebnis hinzu:

   49 * RND() +1

Eine Zufallszahl ohne Nachkommastellen erhalten Sie durch die Funktion INT():

   INT(49 * RND()) + 1

Damit Sie die Zufallszahl in Ihrem Programm verwenden können, speichern Sie das Ergebnis in einer Variable:

   zufallszahl = INT(49 * RND()) + 1

Weiterführende Links

Das Beispielprogramm Lottofee zeigt die beiden Funktionen in Aktion.
 
  
Mit Edith zuletzt aktualisiert am 22.09.22 Impressum     Datenschutz     Zum Seitenanfang