Daniel Thoma: Ereignisse mit unterschiedlichen Eintrittswahrscheinlichkeiten

Beitrag lesen

Hallo seth,

gibt's dafuer in php eigentlich eine fertige funktion? denn rand() arbeitet anders als in den meisten anderen grossen sprachen, liefert naemlich nur integers.

Ich habe keine Erfahrung mit PHP und auf die schnelle konnte ich in der Doku auch nichts finden. Es wäre aber schon etwas jämmerlich, wenn man keine Zufallszahlen zwischen 0 und 1 (gleich- und normalverteilt) bekommen würde.
So bald man irgendwie mit kontinuierlichen Wahrscheinlichkeiten arbeitet, braucht man das ja dauernd.

Gleichverteilte Zufallszahlen sollte man aber schon mal mit mt_rand() / mt_getrandmax() bekommen.
Normalverteilte Zufallszahlen (die wir für diese Anwendung ja gar nicht brauchen) zu erzeugen, ist dann schon umständlicher. Da kann man eines dieser Verfahren implementieren: < http://de.wikipedia.org/wiki/Normalverteilung#Simulation_normalverteilter_Zufallsvariablen>

kleiner tippfehler: s/array(1)/array(n)/

Nein kein Tippfehler. Der Array-Index läuft von 1 bis n - 1, das ist richtig. Allerdings steht ja am Index 1 die Wahrscheinlichkeit, des ersten Elements, wenn die Zufallszahl <= dieser Wahrscheinlichkeit ist, gilt die Gleichung array(0) < zahl <= array(1).
Ich habe diese zwei Werte, die nicht im Array stehen, definiert, um die Gleichung so einfach hinschreiben zu können. Bei einer Implementierung muss man das natürlich dann berücksichtigen (oder man nimmt einfach 2 Arrayeinträge mehr)

Grüße

Daniel