Das folgende Problem wurde auf der Mensa International Facebook-Seite veröffentlicht:
Der Post selbst hat über 1000 Kommentare erhalten, aber ich werde hier nicht näher auf die Debatte eingehen, da ich weiß, dass dies Bertrands Box-Paradoxon ist und die Antwort lautet . Mich interessiert hier, wie man dieses Problem mit einem Monte-Carlo-Ansatz beantwortet. Wie löst der Algorithmus dieses Problem?
Hier ist mein Versuch:
- Generiere gleichmäßig verteilte Zufallszahlen zwischen und .
- Lassen Sie das Ereignis der Box enthält 2 Goldkugeln (Box 1) weniger als die Hälfte ausgewählt.
- Zählen Sie die Zahlen , die weniger als und nenne das Ergebnis als .
- Da es eine Gewissheit ist, eine Goldkugel zu erhalten, wenn die Box 1 ausgewählt ist, und es nur eine 50% ige Chance gibt, eine Goldkugel zu erhalten, wenn die Box 2 ausgewählt ist, ist die Wahrscheinlichkeit, eine Folge GG zu erhalten,
Implementierung des obigen Algorithmus in R:
N <- 10000
S <- sum(runif(N)<0.5)
S/(S+0.5*(N-S))
Die Ausgabe des obigen Programms liegt bei was fast der richtigen Antwort entspricht, aber ich bin mir nicht sicher, ob dies der richtige Weg ist. Gibt es einen geeigneten Weg, um dieses Problem programmgesteuert zu lösen?
quelle
x <- boxes[[sample(3, 1)]]
dass Sie eine Schachtel aus 3 Schachteln nehmen? Wenn ja, warum ist es notwendig, seit wir wissen, dass Sie bereits eine goldene Kugel ausgewählt haben?boxes <- list(c(0, 1), c(1, 1))
und dannx <- boxes[[sample(2, 1)]]
, aber da dies fast dieselbe Rechenzeit ist, warum nicht den zusätzlichen Schritt verwenden, der genau dem Abtastvorgang ähnelt? Es ändert nichts am Ergebnis, macht aber die Simulation explizit.mean
).return(NA)
gibt den fehlenden Wert zurück und wird dannmean(, na.rm = TRUE)
verwendet, wobei dasna.rm = TRUE
Argument die Funktion anweist, die fehlenden Werte zu ignorieren. In anderen Programmiersprachen kann dies anders erfolgen, z . B. mitcontinue
oderpass
Schlüsselwörtern.Ich glaube, Ihre
S/(S+0.5*(N-S))
Berechnung ist nicht wirklich eine SimulationVersuchen Sie so etwas
quelle
Warum nicht einfach die Fälle auflisten?
Hier: G steht für "Gold", S steht für "Silber", Kapital für die anfängliche Gewinnung:
Gg
gG
Gs
... in allen anderen Fällen wird eine anfängliche Silber (S) -Extraktion vorausgesetzt und die Bedingung (anfängliche Extraktion G) nicht erfüllt.
So ist P (g | G) = 2/3.
quelle