Problema
El pasado 17 de mayo, Ed Felten planteó el siguiente problema en el blog de la Casa Blanca Office of Science & Tech Policy.
Alice y Bob están jugando el siguiente juego. Son compañeros de equipo, por lo que van a ganar o perder juntos. Antes de comenzar el juego, pueden hablar entre sí y ponerse de acuerdo en una estrategia.Cuando el juego comienza, Alice y Bob van a habitaciones separadas e insonorizadas —no pueden comunicarse entre sí de ninguna manera. Cada uno de ellos lanza una moneda y anota si salió Cara o Cruz. (Las trampas no están permitidas —tienen que lanzar la moneda honestamente y decir la verdad sobre el resultado.) Ahora Alice escribe su predicción sobre el resultado de la moneda de Bob; y Bob lo mismo respecto a la moneda que lanzó Alice.
Si una o ambas de las predicciones escritas resulta ser correcta, entonces Alice y Bob ganan como equipo. Pero si ambas predicciones están equivocadas, entonces ambos pierden.
La pregunta es: ¿puedes pensar en una estrategia para Alice y Bob que garantice que ganen siempre?
Solución
Representamos todas las opciones.
n <- 4
l <- rep(list(c("Cara", "Cruz")), n)
df <- expand.grid(l)
colnames(df) <- c("A", "Ap", "B", "Bp")
df$Rdo <- ifelse(df$B == df$Ap | df$A == df$Bp, "Gana", "Pierde")
df
A - Alice
Ap - Predicción de Alice
B - Bob
Bp - Predicción de Bob
Rdo - Resultado
A Ap B Bp Rdo
1 Cara Cara Cara Cara Gana
2 Cruz Cara Cara Cara Gana
3 Cara Cruz Cara Cara Gana
4 Cruz Cruz Cara Cara Pierde
5 Cara Cara Cruz Cara Gana
6 Cruz Cara Cruz Cara Pierde
7 Cara Cruz Cruz Cara Gana
8 Cruz Cruz Cruz Cara Gana
9 Cara Cara Cara Cruz Gana
10 Cruz Cara Cara Cruz Gana
11 Cara Cruz Cara Cruz Pierde
12 Cruz Cruz Cara Cruz Gana
13 Cara Cara Cruz Cruz Pierde
14 Cruz Cara Cruz Cruz Gana
15 Cara Cruz Cruz Cruz Gana
16 Cruz Cruz Cruz Cruz Gana
Sin ninguna estrategia ganan el 75% de las veces:
nrow(df[df$Rdo == "Gana", ])/nrow(df)
[1] 0.75
Examinemos los casos en los que pierden.
df[df$Rdo == "Pierde", ]
A Ap B Bp Rdo
4 Cruz Cruz Cara Cara Pierde
6 Cruz Cara Cruz Cara Pierde
11 Cara Cruz Cara Cruz Pierde
13 Cara Cara Cruz Cruz Pierde
En el primer(4) y último(13) caso ambos predicen el mismo resultado que el de la moneda que lanzaron. En el segundo (6) y tercero (11) ambos predicen el opuesto del resultado de la moneda que lanzaron.
Probamos una estrategia en la que uno de ellos —Alice en nuestro caso— predice el caso opuesto al resultado del lanzamiento de su moneda y Bob predice el mismo resultado que el del lanzamiento de su moneda.
df$Ap2 <- ifelse(df$A == "Cara", "Cruz", "Cara")
df$Bp2 <- df$B
df$Rdo2 <- ifelse(df$B == df$Ap2 | df$A == df$Bp2, "Gana", "Pierde")
df
Ap2 - Predicción de Alice, opuesta al resultado de su moneda
Bp2 - Predicción de Bob, igual al resultado de su moneda
Rdo2 - Resultado final: siempre ganan
A Ap B Bp Rdo Ap2 Bp2 Rdo2
1 Cara Cara Cara Cara Gana Cruz Cara Gana
2 Cruz Cara Cara Cara Gana Cara Cara Gana
3 Cara Cruz Cara Cara Gana Cruz Cara Gana
4 Cruz Cruz Cara Cara Pierde Cara Cara Gana
5 Cara Cara Cruz Cara Gana Cruz Cruz Gana
6 Cruz Cara Cruz Cara Pierde Cara Cruz Gana
7 Cara Cruz Cruz Cara Gana Cruz Cruz Gana
8 Cruz Cruz Cruz Cara Gana Cara Cruz Gana
9 Cara Cara Cara Cruz Gana Cruz Cara Gana
10 Cruz Cara Cara Cruz Gana Cara Cara Gana
11 Cara Cruz Cara Cruz Pierde Cruz Cara Gana
12 Cruz Cruz Cara Cruz Gana Cara Cara Gana
13 Cara Cara Cruz Cruz Pierde Cruz Cruz Gana
14 Cruz Cara Cruz Cruz Gana Cara Cruz Gana
15 Cara Cruz Cruz Cruz Gana Cruz Cruz Gana
16 Cruz Cruz Cruz Cruz Gana Cara Cruz Gana
Referencias
No hay comentarios:
Publicar un comentario