En una entrada anterior planteé una cuestión de probabilidad en un juego de cartas con la baraja española.
Se resolvió el problema en esta entrada utilizando una estrategia exhaustiva: crear todas las permutaciones posibles y comprobar en cada una de ellas si se gana o se pierde el juego.
El problema de dicha resolución es el tiempo de ejecución de crear y recorrer 92.024.242.230.271.040.357.108.320.801.872.044.844.750.000.000.000 barajas (ordenamientos de cartas) diferentes.
Así que en esta ocasión vamos a afrontar el problema con otra estrategia: simular un número grande de partidas para calcular la frecuencia relativa de victorias. Esta estrategia en algunos ámbitos se conoce como el Método de Montecarlo, pero en nuestro caso podemos simplificar mucho su fundamento como una aplicación de la Ley de los Grandes Números en un experimento de Bernoulli.
![]() |
Imagen creada con IA |
Resumen resumido: si repetimos muuuuchas veces un experimento, la frecuencia relativa de éxito tiende a la probabilidad teórica del suceso.
Así que he creado un programa en Python (ver código) que simula jugar tantas partidas como le indiquemos.
En la estrategia exhaustiva se calculó un ejemplo:
... con un mazo de cartas de 4 números y 4 palos (16 cartas), el número de permutaciones es 63.063.000 (fórmula de las permutaciones con elementos repetidos) y la probabilidad de ganar el juego es aproximadamente 0.011869416297987727 (~1,19%).
Así que ejecutamos el nuevo código con 4 números y 4 palos e indicamos que queremos que simule 5.000.000 de partidas. Tan sólo 12 segundos más tarde en mi ordenador tengo los resultados:
Se ha ganado el juego 59311 veces de un total de 5000000 partidas.
Porcentaje de éxito: 1.18622 %
Observamos que es una magnífica aproximación a la probabilidad real calculada con la estrategia exhaustiva.
Vamos entonces a simular el problema original de 13 cartas y 4 palos. Le indicamos que simule 5.000.000 de partidas y los resultados obtenidos en 37 segundos son:
Se ha ganado el juego 81267 veces de un total de 5000000 partidas.Pues ya tenemos una aproximación a la solución del problema original. La probabilidad de ganar el juego en las condiciones planteadas es aproximadamente 1,63%.
Porcentaje de éxito: 1.62534 %
Subimos el número de partidas simuladas a 10.000.000:
Se ha ganado el juego 162883 veces de un total de 10000000 partidas.Para la precisión que buscamos no varía significativamente. Por lo que nos damos ya por satisfechos con la aproximación de la solución obtenida.
Porcentaje de éxito: 1.62883 %
Esta estrategia es estupenda cuando es muy complejo o costoso calcular las soluciones reales, o cuando es suficiente encontrar una aproximación empírica a la solución.
Pero en el problema que nos ocupa, ¿y si subimos la apuesta y encontramos otra manera de solucionar el problema?
Esa será la próxima entrada del blog 😉
No hay comentarios:
Publicar un comentario