UP | HOME |

El juego del calamar y la distribución binomial

El juego del calamar y la distribución binomial

Dieciocho pasos para atravesar un puente. Igual probabilidad de vivir que de morir en cada paso. Dieciséis personas que cruzan sucesivamente el puente siguiendo la ruta trazada por sus predecesores. ¿Cuántas personas lograrán atravesar el puente?

juego-calamar-puente.jpg

Así es el planteamiento de la quinta prueba de la serie televisiva El juego del calamar. Hagamos un poco de cálculo de probabilidades para determinar la distribución de probabilidad del número de supervivientes.

Simulación recursiva

Seguimos los pasos sugeridos por Carlos Gil Bellosta.

jugadores <- 16
peldanos <- 18
p <- 0.5 # Probabilidad de éxito

Diseñamos una función recursiva que imite el comportamiento del juego. Empiezan n personas que tienen que recorrer m peldaños. Si el azar les sonríe, en cada paso avanza un peldaño, quedando m-1 peldaños por recorrer. Si el azar les perjudica, avanzan un peldaño, por lo que les quedan m-1, a costa de eliminar un jugador, y siguen el juego n-1 personas.

foo <- function(n, m){
  if (m == 0 || n == 0)
      return(n)
  if (rbinom(1, 1, p) == 1)
    return(foo(n, m - 1))
  else
    return(foo(n-1, m - 1))
}

Y ahora, la simulación, con res el número de personas que sobreviven al juego.

set.seed(123)
res <- replicate(10000,foo(jugadores, peldanos))
table(res)
res
   0    1    2    3    4    5    6    7    8    9   10   11   12   13   14 
   6   29  130  328  690 1228 1706 1846 1651 1243  663  338  112   22    8
hist(res,xlab="Supervivientes")
calamar-histograma.png

Distribución binomial

Inicialmente leí el trabajo de JJAlcalde74, que plantea el problema utilizando una distribución binomial. Me planteé resolver este problema resolviéndolo como una distribución binomial negativa, pero es mucho más fácil siguiendo el razonamiento de JJAlcalde74.

Sea Y el número de peldaños rotos en un puente con 18 peldaños cuando se prueban todos ellos. La probabilidad de rotura de cada peldaño es 0.5 y es independiente del resto. Entonces Y sigue una distribución binomial Binomial(n=18, p=0.5) con Y = 0,1,2,…,18. Calculemos cuánto valen estas probabilidades.

jugadores <- 16
peldanos <- 18
p <- 0.5 # Probabilidad de éxito

y <- 0:peldanos
(probsy <- dbinom(y,size=peldanos,prob=p))
 [1] 3.814697e-06 6.866455e-05 5.836487e-04 3.112793e-03 1.167297e-02
 [6] 3.268433e-02 7.081604e-02 1.213989e-01 1.669235e-01 1.854706e-01
[11] 1.669235e-01 1.213989e-01 7.081604e-02 3.268433e-02 1.167297e-02
[16] 3.112793e-03 5.836487e-04 6.866455e-05 3.814697e-06

Sea X el número de muertos según las reglas del juego. Entonces X = min(Jugadores, Y). Es decir, es la distribución truncada de Y.

x <- 0:jugadores
(probabilidad <- c(probsy[y < jugadores], sum(probsy[y>=jugadores])))
 [1] 3.814697e-06 6.866455e-05 5.836487e-04 3.112793e-03 1.167297e-02
 [6] 3.268433e-02 7.081604e-02 1.213989e-01 1.669235e-01 1.854706e-01
[11] 1.669235e-01 1.213989e-01 7.081604e-02 3.268433e-02 1.167297e-02
[16] 3.112793e-03 6.561279e-04

Dibujemos la distribución de la probabilidad de que sobrevivan los jugadores.

supervivientes <- jugadores-x
plot(supervivientes,probabilidad,main="El juego del calamar")
calamar-binomial-negativa.png