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?
źródło
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ę?boxes <- list(c(0, 1), c(1, 1))
, a następniex <- boxes[[sample(2, 1)]]
, ale ponieważ jest to prawie taki sam czas obliczeń, dlaczego nie wykorzystać dodatkowy krok, który dokładnie podobny proces próbkowania? Nie zmienia to niczego w wyniku, ale wyraźnie określa symulację.mean
).return(NA)
zwraca brakującą wartość, a następniemean(, na.rm = TRUE)
jest używana, gdziena.rm = TRUE
argument mówi funkcji, aby zignorowała brakujące wartości. W innych językach programowania można to zrobić inaczej, np. Za pomocącontinue
lubpass
słów kluczowych.czuję twój
S/(S+0.5*(N-S))
obliczenia nie są tak naprawdę symulacjąSpróbuj czegoś takiego
źródło
Dlaczego nie po prostu wymienić skrzyń?
Tutaj: G oznacza „złoto”, S oznacza „srebro”, kapitał służy do początkowej ekstrakcji:
Gg
gG
Gs
... wszystkie pozostałe przypadki wymagają wstępnej ekstrakcji srebra (S) i nie spełniają warunkowego (początkowej ekstrakcji G).
Taki P (g | G) = 2/3.
źródło