Następujący problem został opublikowany na stronie Mensa International na Facebooku:
Sam post otrzymał ponad 1000 komentarzy, ale nie będę wchodził w szczegóły na temat debaty, ponieważ wiem, że jest to paradoks skrzynki Bertranda, a odpowiedź brzmi . Zainteresowało mnie to, w jaki sposób można rozwiązać ten problem, stosując podejście Monte Carlo? Jak algorytm rozwiązuje ten problem?
Oto moja próba:
- Wygeneruj równomiernie rozmieszczonych liczb losowych od do .1
- Niech wydarzenie w pudełku zawiera 2 wybrane złote kule (pole 1), jest mniejsze niż połowa.
- Policz liczby mniejsze niż i nazwij wynik jakoS. .
- Ponieważ jest pewne, że zdobędziesz złotą piłkę, jeśli zostanie wybrane pudełko 1, a szansa na zdobycie złotej piłki jest tylko 50%, jeśli zostanie wybrane pudełko 2, stąd prawdopodobieństwo uzyskania sekwencji GG wynosi
Implementowanie powyższego algorytmu w języku R:
N <- 10000
S <- sum(runif(N)<0.5)
S/(S+0.5*(N-S))
Wyjście powyższego programu wynosi około co prawie odpowiada poprawnej odpowiedzi, ale nie jestem pewien, czy to jest właściwy sposób. Czy istnieje właściwy sposób programowego rozwiązania tego problemu?
x <- boxes[[sample(3, 1)]]
znaczy, że bierzesz pudełko z 3 pudełek? Jeśli tak, dlaczego jest to konieczne, skoro wiemy, że już wybrałeś złotą piłkę?