El siguiente problema ha sido publicado en la página de Facebook de Mensa International:
La publicación en sí recibió más de 1000 comentarios, pero no entraré en detalles sobre el debate allí, ya que sé que esta es la paradoja de Bertrand y la respuesta es . Lo que me interesa aquí es cómo se responde a este problema utilizando un enfoque de Monte Carlo. ¿Cómo es el algoritmo para resolver este problema?
Aquí está mi intento:
- Genere números aleatorios distribuidos uniformemente entre y .0 1
- Deje que el evento de la caja contenga 2 bolas de oro (casilla 1) seleccionadas, sea menos de la mitad.
- Contar los números que menos de y llame el resultado como .
- Dado que es seguro obtener una bola de oro si se selecciona la casilla 1 y solo hay un 50% de posibilidades de obtener una bola de oro si se selecciona la casilla 2, por lo tanto, la probabilidad de obtener una secuencia GG es
Implementando el algoritmo anterior en R:
N <- 10000
S <- sum(runif(N)<0.5)
S/(S+0.5*(N-S))
La salida del programa anterior es de alrededor de que casi coincide con la respuesta correcta, pero no estoy seguro de que esta sea la forma correcta. ¿Hay una manera adecuada de resolver este problema mediante programación?
fuente
x <- boxes[[sample(3, 1)]]
Significa que tomas una caja de 3 cajas? Si es así, ¿por qué es necesario ya que sabemos que ya elegiste una bola de oro?boxes <- list(c(0, 1), c(1, 1))
y luegox <- boxes[[sample(2, 1)]]
, pero dado que este es casi el mismo tiempo de cálculo, ¿por qué no usar el paso adicional que se asemeja exactamente al proceso de muestreo? No cambia nada sobre el resultado, pero hace que la simulación sea explícita.mean
).return(NA)
devuelve el valor perdido y luegomean(, na.rm = TRUE)
se usa, donde elna.rm = TRUE
argumento le dice a la función que ignore los valores faltantes. En otros lenguajes de programación, esto podría hacerse de manera diferente, por ejemplo, usandocontinue
opass
palabras clave.Siento que tu
S/(S+0.5*(N-S))
cálculo no es realmente simulaciónIntenta algo como esto
fuente
¿Por qué no simplemente enumerar los casos?
Aquí: G es para "oro", S es para "plata", el capital es para la extracción inicial:
Gg
gG
Gs
... todos los demás casos invocan una extracción inicial de plata (S) y no satisfacen el condicional (extracción inicial G).
Tal, P (g | G) = 2/3.
fuente