Monte-Carlo-Simulation des Ziegenproblems

In einer Spielshow steht ein Kandidat vor drei verschlossenen Türen. Eine Tür verbirgt den Hauptgewinn (ein Auto), hinter den beiden anderen sind Ziegen versteckt. Der Kandidat zeigt auf eine der Türen; der Spielleiter (er weiß, was sich hinter den Türen befindet) öffnet dann eine der beiden anderen Türen, um eine Ziege zu präsentieren. Der Kandidat darf nun seine Wahl überdenken. Soll er auf seiner ursprünglichen Wahl beharren oder auf eine andere Türe wechseln?

 

Dieses Problem, auch als Drei-Türen-Problem oder Monty-Hall-Problem bekannt, hat in der Vergangenheit immer wieder für Verwirrung und heftige Dispute gesorgt. Es wurde sogar ein populärwissenschaftliches Buch darüber geschrieben. Dabei ergibt sich  die Lösung aus einem recht unkomplizierten Gedankengang:

 

Hat der Kandidat bei seiner ersten Wahl die Gewinntür gewählt (Wahrscheinlichkeit 1/3), so verliert er beim Wechsel. Steht aber hinter der anfangs gewählten Tür eine Ziege (Wahrscheinlichkeit 2/3), dann ist der Wechsel zur verbleibenden Tür stets erfolgreich.

 

Wechseln ist also in 2/3 der möglichen Situationen erfolgreich; Beharren nur bei 1/3.

 

Gegenüber der logischen Argumentation bringt eine Simulation natürlich keine neuen Erkenntnisse. Sie ist trotzdem nicht uninteressant, weil man, erstens, damit vielleicht Ungläubige überzeugen und zweitens eine kleine Animation daran knüpfen kann.

 

Das folgende Bild zeigt die Benutzeroberfläche unserer kleinen Simulation. Die Eingaben geschehen direkt auf dem Tabellenblatt, auf dem auch die Resultate angezeigt werden. Für die Eingabe der Anzahl der Spieldurchgänge dient ein Textfeld; die Auswahl des Verzögerungsfaktors für die Animation geschieht mit einer ComboBox. Die Animation selbst besteht daraus, dass der Benutzer verfolgen kann, wie sich die Ergebnisbalken von Durchgang zu Durchgang entwickeln.

 

Die Lösung hat einen zweischichtigen Aufbau. Die Benutzersteuerung geschieht im Modul des Tabellenblatts, der Kern der Anwendung steckt in einer Klasse Ziegensimulation. Benutzeroberfläche und Programmlogik sind also streng voneinander getrennt.

 

Monte-Carlo-Simulation des Ziegenproblems, mit Animation
Ziegensimulation02.zip
Komprimiertes Archiv im ZIP Format 33.8 KB