Le problème suivant a été publié sur la page Facebook de Mensa International:
Le message lui-même a reçu plus de 1000 commentaires, mais je n'entrerai pas dans les détails du débat là-bas, car je sais que c'est le paradoxe de la boîte de Bertrand et la réponse est . Ce qui m'intéresse ici, c'est comment répondre à ce problème en utilisant une approche Monte Carlo? Comment est l'algorithme pour résoudre ce problème?
Voici ma tentative:
- Générez nombres aléatoires uniformément répartis entre et .0 1
- Que l'événement de la boîte contient 2 boules d'or (boîte 1) sélectionnées inférieures à la moitié.
- Compter le nombre que moins de et de communiquer avec le résultat que .S
- Puisqu'il est certain d'obtenir une boule d'or si la case 1 est sélectionnée et que c'est seulement 50% de chances d'obtenir une boule d'or si la case 2 est sélectionnée, d'où la probabilité d'obtenir une séquence GG est
Implémentation de l'algorithme ci-dessus dans R:
N <- 10000
S <- sum(runif(N)<0.5)
S/(S+0.5*(N-S))
La sortie du programme ci-dessus est d'environ ce qui correspond presque à la bonne réponse, mais je ne suis pas sûr que ce soit la bonne façon. Existe-t-il un moyen approprié de résoudre ce problème par programme?
la source
x <- boxes[[sample(3, 1)]]
signifie- t - il que vous prenez une boîte de 3 boîtes? Si oui, pourquoi est-ce nécessaire puisque nous savons que vous avez déjà choisi une boule d'or?boxes <- list(c(0, 1), c(1, 1))
et ensuitex <- boxes[[sample(2, 1)]]
, mais comme il s'agit presque du même temps de calcul, pourquoi ne pas utiliser l'étape supplémentaire qui ressemble exactement au processus d'échantillonnage? Cela ne change rien au résultat, mais rend la simulation explicite.mean
).return(NA)
renvoie la valeur manquante, puismean(, na.rm = TRUE)
est utilisée, où l'na.rm = TRUE
argument indique à la fonction d'ignorer les valeurs manquantes. Dans d'autres langages de programmation, cela pourrait être fait différemment, par exemple en utilisantcontinue
ou despass
mots clés.Je sens que ton
S/(S+0.5*(N-S))
calcul n'est pas vraiment de la simulationEssayez quelque chose comme ça
la source
Pourquoi ne pas simplement lister les cas?
Ici: G est pour "or", S est pour "argent", le capital est pour l'extraction initiale:
Gg
gG
Gs
... tous les autres cas impliquent une extraction initiale d'argent (S) et ne satisfont pas au conditionnel (extraction initiale G).
Tels, P (g | G) = 2/3.
la source