Hallo,
also ich wollt's ja partout auch nicht glauben, dass beim Wechsel die Chance auf 2/3 steigt. Aber Empirie rules, und wozu haben wir alle einen Computer vor der Nase? Also hab ich auf die Schnelle eine JavaScript-Simulation unter den gegeben Regeln geschrieben (Übrigens fiel mir dann beim Verfassen des "Algorithmus" [Anführungszeichen sind Absicht!] für den Wechsel auf, warum die Wahrscheinlichkeit auf 2/3 steigt). Ergebnis: bleibe ich bei meiner ersten Wahl, gewinne ich immer etwa 1/3 Auto, wechsle ich, gewinne ich immer etwa 2/3 Auto. Wer's selber mal probieren mag, hier ist das Skript inkl. HTML-Teil (wer's mit nem anderen Browser als Mozilla probier, möge mögliche Fehler selber korrigieren):
<html>
<head>
<title>Ziegendilemma Simulation</title>
<script type="text/javascript">
function getOneTwoThree()
{
iRndNumber = 0;
while (iRndNumber==0)
{
iRndNumber = (Math.random())*100;
iRndNumber = parseInt(iRndNumber);
}
if (iRndNumber<34) iResultNumber = 1;
else if (iRndNumber<67) iResultNumber = 2;
else iResultNumber = 3;
return iResultNumber;
}
function getSecondChoice(iGateNumber, iFirstChoice)
{
if (iGateNumber==1)
{
if (iFirstChoice==1) iSecondChoice = 3;
else if (iFirstChoice==2) iSecondChoice = 1;
else iSecondChoice = 1;
}
else if (iGateNumber==2)
{
if (iFirstChoice==1) iSecondChoice = 2;
else if (iFirstChoice==2) iSecondChoice = 1;
else iSecondChoice = 2;
}
else
{
if (iFirstChoice==1) iSecondChoice = 3;
else if (iFirstChoice==2) iSecondChoice = 3;
else iSecondChoice = 2;
}
return iSecondChoice;
}
function startSimulation()
{
iCarsWon = 0;
sIterations = document.formular.iterationen.value;
iIterations = parseInt(sIterations);
for(i = 1; i <= iIterations; i++)
{
iGateNumber = 0;
iFirstChoice = 0;
// Hinter dem Tor ist das Auto
iGateNumber = getOneTwoThree();
// Erste Wahl des Kandidaten
iFirstChoice = getOneTwoThree();
// Wim öffnet ein Tor, zweite Wahl des Kandidaten
iSecondChoice = getSecondChoice(iGateNumber, iFirstChoice);
if (document.formular.art[0].checked)
{
if (iGateNumber==iFirstChoice) iCarsWon++;
}
if (document.formular.art[1].checked)
{
if (iGateNumber==iSecondChoice) iCarsWon++;
}
}
document.formular.ausgabe.value = iCarsWon;
}
</script>
</head>
<body>
<form action="#" method="post" name="formular" onsubmit="startSimulation(); return false;">
Zu spielende Durchläufe: <input type="text" name="iterationen" value="1000"><br>
<input type="radio" name="art" value="bleiben" checked> Bei der ersten Wahl bleiben
<input type="radio" name="art" value="wechseln"> Wechseln<br>
Gewonnene Autos: <input type="text" name="ausgabe" value=""><br>
<input type="submit" value="Simulation starten">
</form>
</body>
</html>
Grüße,
Utz