Ich weiß nicht, ob es zu meiner Intuition passt oder nicht, daher ist das Monty Hall-Problem zu einem Grundnahrungsmittel für Wahrscheinlichkeitsquizprobleme geworden. Aber verstehst du das wirklich?
Es gibt drei Türen, A, B und C. Nur eine der drei Türen ist ein Treffer und die anderen beiden sind ausgeschaltet. Das Spiel wird wie folgt gespielt.
Frage: Sollte der Spieler die Tür wechseln oder nicht? Insbesondere werden durch Ändern der Tür die Gewinnchancen erhöht, verringert oder nicht geändert.
Antwort: Spieler sollten die Tür wechseln. Da der Spieler eine der drei Türen gewählt hat, beträgt die Gewinnchance für die gewählte Tür 1/3. Die Wahrscheinlichkeit, dass eine der nicht ausgewählten Türen getroffen wird, beträgt 2/3. Und Monty öffnete eine der Türen, die er nicht gewählt hatte. Daher beträgt die Wahrscheinlichkeit, dass die verbleibende Tür getroffen wird, 2/3. Mit anderen Worten, durch Ändern der Tür wird die Gewinnchance von 1/3 auf 2/3 erhöht.
Aber was ist, wenn Monty es nicht öffnete, sondern ein Windstoß die Tür öffnete? Die Böe ist ein Unfall, nicht der Zweck, das Spiel zu erregen. Es ist also möglich, die Tür Ihrer Wahl oder die Tür, die Sie getroffen haben, zu öffnen. Wir gehen auch davon aus, dass die Wahrscheinlichkeit einer Türöffnung gleich ist.
Frage: Sollte der Spieler die Tür wechseln oder nicht? Insbesondere werden durch Ändern der Tür die Gewinnchancen erhöht, verringert oder nicht geändert.
Antwort: Die Gewinnchancen sind gleich, unabhängig davon, ob Sie die Tür wechseln oder nicht. e? Wenn Sie es ändern, ist die Wahrscheinlichkeit 2/3? Was zum Teufel redest du?
Jemand, der das Monty Hall-Problem irgendwie versteht, ist möglicherweise nicht von den Folgen eines Windstoßes überzeugt. Ob es Monty war, der es öffnete, oder ein Windstoß, die Schlussfolgerung war dieselbe, weil sich die Tür am Stadtrand, die der Spieler nicht gewählt hatte, öffnete. Hast du das nicht gedacht?
Hier kann gesagt werden, dass die Wahrscheinlichkeitstheorie chaotisch ist. Wie Sie alle wissen, ist [Monty ist Python](https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3 % E3% 83% BB% E3% 83% 91% E3% 82% A4% E3% 82% BD% E3% 83% B3). Hier möchte ich, dass Sie sich gewaltsam davon überzeugen, indem Sie das Monty Hall-Problem und das Windstoß-Monty Hall-Problem mit Python simulieren.
Gewöhnliches Monty Hall-Problem
import random
N = 100000
first_choice_is_atari = 0
second_choice_is_atari = 0
for _ in range(N):
#Jeder ist richtig
atari = random.choice(["A", "B", "C"])
#Wählen Sie zuerst eine aus
first_choice = random.choice(["A", "B", "C"])
#Monty öffnet etwas, das weder ein Treffer noch ein Auserwählter ist
monty_opened = random.choice(list({"A", "B", "C"}.difference(atari).difference(first_choice)))
#Dann gibt es nur eine Sache, die Sie noch nicht geöffnet und nicht ausgewählt haben.?
second_choice_candidates = list({"A", "B", "C"}.difference(first_choice).difference(monty_opened))
assert len(second_choice_candidates) == 1
#Wenn Sie ändern möchten, können Sie ändern
second_choice = second_choice_candidates[0]
if first_choice == atari:
first_choice_is_atari += 1
elif second_choice == atari:
second_choice_is_atari += 1
else:
raise ValueError("Unreachable")
#Gewinnwahrscheinlichkeit, wenn nicht geändert,Gewinnwahrscheinlichkeit bei Änderung
print(first_choice_is_atari / N, second_choice_is_atari / N)
Ich habe es auf einfache und leicht verständliche Weise geschrieben, ohne auf Effizienz zu achten. Es ist nicht genau, weil es Zufallszahlen verwendet, aber egal wie oft Sie es ausführen, es sollte ungefähr 1/3 sein, wenn Sie es nicht ändern, und 2/3, wenn Sie es ändern.
Gale Monty Hall Problem
import random
N = 100000
first_choice_is_atari = 0
second_choice_is_atari = 0
game_canceled = 0
for _ in range(N):
#Jeder ist richtig
atari = random.choice(["A", "B", "C"])
#Wähle ein
first_choice = random.choice(["A", "B", "C"])
#Ein Windstoß weht und einer öffnet sich
wind_opened = random.choice(["A", "B", "C"])
#Wenn die richtige Antwort oder die erste Wahl geöffnet wird, wird das Spiel abgebrochen.
if wind_opened == atari or wind_opened == first_choice:
game_canceled += 1
continue
#Wenn Sie das Spiel fortsetzen, gibt es nur eine Sache, die Sie noch nicht geöffnet und nicht ausgewählt haben.?
second_choice_candidates = list({"A", "B", "C"}.difference(first_choice).difference(wind_opened))
assert len(second_choice_candidates) == 1
#Wenn Sie ändern möchten, können Sie ändern
second_choice = second_choice_candidates[0]
if first_choice == atari:
first_choice_is_atari += 1
elif second_choice == atari:
second_choice_is_atari += 1
else:
raise ValueError("Unreachable")
#Gewinnwahrscheinlichkeit, wenn nicht geändert,Gewinnwahrscheinlichkeit bei Änderung,Wahrscheinlichkeit, dass das Spiel nicht fortgesetzt werden kann
print(first_choice_is_atari / N, second_choice_is_atari / N, game_canceled / N)
Dies ist auch eine Zufallszahl, daher ist sie nicht genau, aber diesmal sollte sie mit oder ohne Änderung bei 22% liegen.
Lassen wir Python unser Bestes geben. Dieses Mal werde ich versuchen herauszufinden, woher diese 22% stammen, indem ich alle Muster anstelle von Zufallszahlen aufführe.
Löse das Geheimnis der Böe
from itertools import product
first_choice_is_atari = 0
second_choice_is_atari = 0
game_canceled = 0
print("|Schlagen|Erste Wahl|Böe|Ergebnis|")
print("|------|----------|----|--------|")
for atari, first_choice, wind_opened in product("ABC", repeat=3):
if atari == wind_opened or first_choice == wind_opened:
result = "Stornieren"
game_canceled += 1
elif atari == first_choice:
result = "Verändere dich nicht"
first_choice_is_atari += 1
else:
result = "Veränderung"
second_choice_is_atari += 1
print("| {}| {}| {}|{}|".format(atari, first_choice, wind_opened, result))
print("")
total = first_choice_is_atari + second_choice_is_atari + game_canceled
print(first_choice_is_atari / total, second_choice_is_atari / total, game_canceled / total)
Eine Markdown-Formattabelle wird ausgegeben. Wenn Sie den Fall zählen, in dem die Person, die sich nicht ändert, ein Treffer ist ("nicht ändern"), und den Fall, in dem die Person, die sich ändert, ein Treffer ist ("ändern"), können Sie sehen, dass es jeweils 6 gibt. Mit oder ohne Änderung gibt es insgesamt 6 von 27 Möglichkeiten, also 6/27 = 2/9 = 22,2222 ...%.
Schlagen | Erste Wahl | Böe | Ergebnis |
---|---|---|---|
A | A | A | Stornieren |
A | A | B | Verändere dich nicht |
A | A | C | Verändere dich nicht |
A | B | A | Stornieren |
A | B | B | Stornieren |
A | B | C | Veränderung |
A | C | A | Stornieren |
A | C | B | Veränderung |
A | C | C | Stornieren |
B | A | A | Stornieren |
B | A | B | Stornieren |
B | A | C | Veränderung |
B | B | A | Verändere dich nicht |
B | B | B | Stornieren |
B | B | C | Verändere dich nicht |
B | C | A | Veränderung |
B | C | B | Stornieren |
B | C | C | Stornieren |
C | A | A | Stornieren |
C | A | B | Veränderung |
C | A | C | Stornieren |
C | B | A | Veränderung |
C | B | B | Stornieren |
C | B | C | Stornieren |
C | C | A | Verändere dich nicht |
C | C | B | Verändere dich nicht |
C | C | C | Stornieren |
Das Problem der Wahrscheinlichkeit ist schwierig. Und es ist noch schwieriger, eine Bestätigung zu erhalten, dass die Antwort auf das Wahrscheinlichkeitsproblem wirklich richtig oder falsch ist. Aber dann werden Programmiersprachen zu einem beruhigenden Partner.
Eigentlich ist es eine ziemlich schwierige Aufgabe, eine Tür und Mr. Monty vorzubereiten und einen Windstoß zu blasen, bis sich die Tür öffnet, aber es ist zu groß, um Zufallszahlen auf einem Computer zuzuweisen und eine entsprechende Simulation durchzuführen. Wenn Sie kein Problem haben, können Sie es sofort versuchen. Das Aufzählen und Zählen aller Muster ist auch auf kleinere Probleme beschränkt, aber dennoch ist das Monty Hall-Problem überhaupt kein Problem.
Mach es selbst, bevor du dich verwirrt oder getäuscht fühlst. Sie können eine andere Welt sehen.
Übrigens, wenn Sie über die freie Kapazität verfügen, versuchen Sie, alle Muster aufzuzählen, um zu sehen, warum das Ändern der Tür die Wahrscheinlichkeit beim Monty Hall-Problem, bei dem der Wind nicht weht, auf 2/3 verringert.
Recommended Posts