Juego de trece
El famoso matemático francés Pierre Raymond De Montmart, conocido por su trabajo en combinatoria, propuso un juego sencillo llamado Juego de Trece. Tienes una baraja de 13 cartas, numeradas del 1 al 13. Baraja esta baraja y roba cartas una a una. Hay una coincidencia cuando el número de la carta coincide con el orden en el que se roba. Por ejemplo, si la quinta carta que robas resulta ser un 5, hay una coincidencia. Ganarás el juego si pasas por todas las cartas sin ninguna coincidencia. Vamos a calcular la probabilidad de ganar a este juego mediante simulación.
Al completar este ejercicio, reforzarás tu capacidad para llevar problemas abstractos al marco de simulación para estimar probabilidades.
Este ejercicio forma parte del curso
Simulación estadística en Python
Instrucciones del ejercicio
- En cada partida, roba todas las cartas de
decksin reemplazo y asígnalas adraw. - Comprueba si hay alguna coincidencia en el robo y, si la hay, incrementa el contador
coincidencesen 1. - Calcula la probabilidad de ganar como la fracción de partidas sin ninguna coincidencia y usa
prob_of_winningpara imprimir tus resultados.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Pre-set constant variables
deck, sims, coincidences = np.arange(1, 14), 10000, 0
for _ in range(sims):
# Draw all the cards without replacement to simulate one game
draw = np.random.choice(____, size=____, replace=____)
# Check if there are any coincidences
coincidence = (draw == list(np.arange(1, 14))).any()
if coincidence == ____:
coincidences += 1
# Calculate probability of winning
prob_of_winning = ____
print("Probability of winning = {}".format(____))