Eine Funktion, die die Wahrscheinlichkeit von etwas bestimmt

Zunächst muss eine Hilfsfunktion implementiert werden, die feststellt, ob eine zufällige Zahl (mit random zu erzeugen) ein bestimmtes Erfordernis erfüllt oder nicht und dafür true oder false ausgibt.

Dann eine zweite Hilfsfunktion, die als interne Funktion (mit letrec geht das) eine Funktion speichert, die die Zahl der verbleibenden Versuche und die Zahl der erfolgreichen Versuche bekommt. In einer cond-Verzweigung wird das Ergebnis ausgegeben, wenn nur noch 0 Versuche verbleiben (das Ergebnis ist die Zahl der erfolgreichen Versuche geteilt durch die Gesamtzahl der Versuche). Ansonsten wird die Zahl der erfolgreichen Versuche im erneuten Aufruf hochgezählt, wenn die obige Hilfsfunktion true zurückgibt und die Zahl der verbleibenden Versuche runtergezählt. Bei false wird nur runtergezählt. Diese Funktion wird dann intern aufgerufen mit dem angegebenen Startwert und 0 für die erfolgreichen Versuche.

Die Oberfunktion dann bekommt die Zahl der Versuche und ruft die Prüf-Funktion (also die zweite Hilfsfunktion) auf mit der angegebenen Versuchszahl und der ersten Hilfsfunktion (dem Experiment).

Als Experiment kann zum Beispiel geprüft werden, ob eine zufällige Zahl im Einheitskreis liegt.

Keine Kommentare:

Kommentar veröffentlichen