[PYTHON] Eine Geschichte, von der ich sehr überzeugt war, als ich den Code für das Monty Hall-Problem schrieb und die Gewinnrate berechnete

Was ist das Monty Hall-Problem?

"Es gibt drei geschlossene Türen vor dem Spieler, hinter einer Tür gibt es ein neues Auto als Geschenk und hinter den beiden Türen gibt es eine Ziege, was bedeutet, dass es aus ist. Der Spieler schlägt die Tür des neuen Autos. Nachdem der Spieler eine Tür ausgewählt hat, öffnet der Moderator Monty die verbleibende Tür mit der Ziege und zeigt die Ziege. Dem Spieler wird nun mitgeteilt, dass er die ursprünglich gewählte Tür in die verbleibende ungeöffnete Tür ändern darf. Sollte der Spieler die Tür wechseln? "" ([wikipedia](https://ja.wikipedia.org/wiki/Monty Hall Problem))

Die richtige Antwort lautet "Ändern". Wenn Sie sie ändern, beträgt die Gewinnrate 66,7%.

Sobald Sie mit dem Studium der Wahrscheinlichkeitsstatistik und des maschinellen Lernens beginnen, wird der Satz von Bayes aufgestellt, der Ihnen eines Tages helfen wird.

Das Monty-Hall-Problem ist ein Problem der Wahrscheinlichkeitstheorie und eines der Beispiele für die hintere Wahrscheinlichkeit oder die subjektive Wahrscheinlichkeit im Bayes-Theorem. Es leitet sich aus der Spielkontroverse in "Let's make a deal" ab, einer amerikanischen Spielshow, die von Monty Hall (richtiger Name Monte Halperin) moderiert wird. Es ist eine Art psychologischer Trick, und selbst wenn das aus der Wahrscheinlichkeitstheorie abgeleitete Ergebnis erklärt wird, gibt es immer noch viele Menschen, die nicht überzeugt sind, so dass es auch als Dilemma oder Paradox bezeichnet wird. Es ist ein gutes Beispiel für "ein Problem, bei dem eine intuitiv korrekte Antwort und eine logisch korrekte Antwort unterschiedlich sind".

Ich habe den Code geschrieben und die Gewinnrate berechnet

Zuerst habe ich die Problemstellung einfach in den Code eingefügt und ausgeführt, aber nachdem ich ein wenig nachgedacht hatte, wurde sie zur folgenden Form, und ich war überzeugt, ohne sie auszuführen.

python


from random import randint

itr = 10000
cnt = 0
for i in range(itr):
    t = randint(1, 3)
    c = randint(1, 3)
    if t != c:
        cnt += 1
print(cnt/itr)

Wenn die erste Wahl ein Verlust ist, wird es Atari sein, wenn Sie wechseln. Die Wahrscheinlichkeit, zuerst einen Verlust zu wählen, beträgt 66,7%. Wenn Sie also wechseln, beträgt die Gewinnrate 66,7%.

Recommended Posts

Eine Geschichte, von der ich sehr überzeugt war, als ich den Code für das Monty Hall-Problem schrieb und die Gewinnrate berechnete
Eine Geschichte, die praktisch war, als ich versuchte, das Python-IP-Adressmodul zu verwenden
Schreiben wir ein einfaches Simulationsprogramm für das "Monty Hall Problem"
Ich habe den Code für Gibbs Sampling geschrieben
Intuitive Erklärung, die nicht auf der Formel des Monty Hall-Problems und der Simulation mit Python beruht
Irgendwie hat der Code, den ich geschrieben habe, funktioniert und ich war beeindruckt, also werde ich ihn veröffentlichen
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
Eine Geschichte, als ich IntelliJ unter Linux verwendete und kein Japanisch eingeben konnte
Beim Schreiben in eine CSV-Datei mit Python habe ich einen kleinen Fehler gemacht und den Liefertermin nicht eingehalten
Eine Geschichte, die Seaborn einfach, bequem und beeindruckt war
Eine Geschichte, von der ich bei np.where süchtig war
Eine Geschichte, nach der ich süchtig war, als ich in Go nil als Funktionsargument angab
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Eine Geschichte über das Schreiben von AWS Lambda und ein wenig Abhängigkeit von den Standardwerten von Python-Argumenten
Code, an den ich mich gerne erinnert hätte, als ich zum ersten Mal an AtCoder teilgenommen habe (Reflection 1 für das nächste Mal)
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden