Abschnitt: 2.5 Erzeugung von diskreten Zufallsgrößen
Seite: 6 von 7

 
 

Erzeugung mehrstufiger Zufallsgrößen

Nahezu alle höheren Programmiersprachen bieten Pseudo-Zufallsgeneratoren an, die reelle, zwischen 0 und 1 gleichverteilte Zufallszahlen x liefern. Beispielsweise lautet der C-Funktionsaufruf:
  • x = random()
Durch sukzessives Aufrufen der Random-Funktion entsteht eine periodisch sich wiederholende Folge reeller Zahlen – vgl. Kapitel 3.4. Da die Periodendauer P jedoch sehr groß ist, kann diese Folge als pseudozufällig angesehen werden. Durch Angabe eines Startwertes wird an bestimmten Stellen der Pseudozufallsfolge begonnen.
Bei der Generierung einer diskreten mehrstufigen Zufallsgröße z wird zweckmäßigerweise von einer solchen gleichverteilten Zufallsgröße x ausgegangen.
Beispiel: Das nachfolgende Bild zeigt das Prinzip für den Sonderfall M = 3, wobei die gewünschten Auftrittswahrscheinlichkeiten mit p0, p1 und p2 bezeichnet sind.
Ist der aktuelle Wert der zwischen 0 und 1 gleichverteilten Zufallsgröße x kleiner als p0, so wird z = 0 gesetzt. Im Bereich p0 ≤ x < p0 + p1 gilt z = 1, darüberhinaus wird die Zufallsgröße zu z = 2.

Im aufgeführten C-Programm ergibt sich für die Stufenzahl M = 3 und für den aktuellen Zufallswert x = 0.57 für das Produkt x · M = 0.57 · 3 = 1.71 und somit die diskrete Zufallsgröße z = 1. Für einen zweiten Zufallswert x = 0.95 würde die Funktion dagegen das Ergebnis z = 2 liefern.
Aus Darstellungsgründen wurde hier eine etwas umständliche Programmierung gewählt. Der oben angegebene C-Programmteil könnte auch sehr viel kompakter geschrieben werden:
  • { float random(); return((long) (random()*M)); }
 
 

Inhaltsverzeichnis
Seitenübersicht
Weiter: Nächste Seite
 
 
Persönliche Einstellungen
Downloads