Fehlt nur noch, die erhaltenen Ergebnisse auszugeben:
document.form.switch.value = ( sw/tries*100 ).toFixed( 5 ) + “%”;
}
}
Hier noch einmal die Funktion im Ganzen:
var tries = getTries();
if ( tries != 0 ) {
var stay = 0;
var sw = 0;
for ( var i = 0; i < tries; ++i ) { var winPos = getRandom( 0, 2 ); var tryPos = getRandom( 0, 2 ); if ( tryPos == winPos ) ++stay; if ( tryPos != winPos ) ++sw; } document.form.stay.value = ( stay/tries*100 ).toFixed( 5 ) + "%"; document.form.switch.value = ( sw/tries*100 ).toFixed( 5 ) + "%"; } }
Damit haben wir sämtliche Funktionalität programmiert, um unsere Simulation durchzuführen. Fügt man die hier gezeigten Codeausschnitte zusammen und fügt sie in ein HTML-Dokument ein, so ergibt sich das folgende Formular, welches auch gleich mit einer Zahl gefüllt (bitte langsam vorantasten – zu große Zahlen könnten den Rechner zu stark belasten) und ausprobiert werden kann (wichtig: JavaScript muss hierzu im Browser aktiv sein):
Wenn eine genügend große Zahl eingegeben wird, bestätigt sich hiermit auch die eingangs getroffene Aussage, dass uns das Wechseln des Tores eine Gewinnchance von ungefähr 66% beschert.2
Wir haben hiermit also ein (zugegebenermaßen relativ unspannendes) Problem durch Simulation gelöst. Im nächsten Artikel der Reihe wollen wir ein etwas komplexeres Problem simulieren – Vorschläge hierfür können gern eingereicht werden (ansonsten habe ich schon die ein oder andere Idee).
2 Aufmerksame Leser werden natürlich völlig zu recht bemerken, dass sich das Ergebnis allein schon aus der Zählweise ergeben muss. Dies ist hier auch lediglich die abgekürzte Version der Simulation; eigentlich müsste man sie komplett ausführen, mit der Simulation des Öffnen eines Tores, einem anschließenden zufälligen Nicht-/Wechsel und der Überprüfung auf einen Gewinn – das würde aber den Rahmen eines Artikels sprengen und dabei zum gleichen Ergebnis führen (was ich auch verifiziert habe).
Kommentare (22)