Mostrando entradas con la etiqueta juegos de azar. Mostrar todas las entradas
Mostrando entradas con la etiqueta juegos de azar. Mostrar todas las entradas

miércoles, 3 de septiembre de 2025

Probabilidad con baraja española: manotazo. Solución 3/3 (Matemáticas al rescate)

Todo comienza en un viaje familiar que inicia las vacaciones de verano. Un rato muerto. Una baraja española. Un recuerdo de juego en mi infancia. Y tras ir volteando cartas y diciendo los números consecutivos y "perder" casi todas las veces surge la pregunta: ¿qué probabilidad hay de ganar a este juego?


 Y ya tenemos la chispa encendida. Y siguen un papel y un boli con la probabilidad clásica, combinatoria, árboles y simplificaciones del problema para entender la magnitud real del mismo. Y la magnitud es demasiado grande para mis papeles. ¿Y si cojo el ordenador y programo un poco para contestar a la pregunta? Pero ahí también surgen dificultades.

Pero, como sucede con cierta frecuencia, en el proceso de investigar y buscar estrategias aparecen nuevos conocimientos que acaban hilándose hasta llegar al culmen.

Así que decidí dedicar algunos ratos libres para programar e ir contando en este blog todo de manera gradual y por fascículos.

Y antes de introducir el problema "grande" escribí esta entrada con un problema de urnas y bolas; y en esta otra entrada la solución (con la inesperada visita del número e). Intercalé esta entrada sobre el subfactorial y los desarreglos, que "casualidades de la vida" se utilizaban en la solución.

Parecía el fin de la cuestión y como quien cambia de tema aparece esta entrada sobre los polinomios de Laguerre y cómo calcularlos con Python y wxMaxima.

Y ahora sí, llega el problema original con la baraja de cartas. Enunciado en esta entrada, y primera solución es esta otra entrada. Pero nos encontramos con un problema de tiempos razonables de ejecución así que en esta nueva entrada cuento cómo hacer una aproximación empírica a la solución del problema.

Pero queda la traca final que pone fin a esta serie de entradas, como ya se ha puesto fin a la vacaciones de verano.

Resulta que existe una fórmula para calcular una generalización de los desarreglos cuando tenemos elementos que se repiten.

Teniendo r elementos diferentes, el primero que se repite n1 veces, el segundo n2 veces y así sucesivamente, el número de desarreglos viene dado por: 

Donde Pn_i es el polinomio de Laguerre de grado n_i. (Fuente) 

Por ejemplo, en una situación con 3 elementos que se repiten 1, 5 y 7 veces respectivamente, dentro de la integral definida tendremos (además de la exponencial de -x) los polinomios de Laguerre de grado 1, de grado 5 y de grado 7.

Por tanto, en nuestro problema original (13 números repetidos 4 veces), dentro de la integral tendremos 13 veces el polinomio de Laguerre de grado 4 (y la exponencial). Así que resolviendo esa integral podemos obtener la solución del problema.

En wxMaxima es muy sencillo y rápido (código en github):

Y la implementación en Python puede encontrarse también en mi repositorio de Matemática Recreativa de Github (ver código).

Con un tiempo de ejecución muy pequeño tenemos la respuesta al problema: la probabilidad de ganar en las condiciones planteadas es de aproximadamente 1,62%.

Recordad que con la estrategia de simulación empírica obtuvimos aproximadamente 1,63%. En este caso no necesitamos simulaciones, porque las Matemáticas tienen una manera relativamente sencilla de calcularlo, pero cabe destacar que la aproximación realizada es bastante buena.

¿Quién me iba a decir en casa de mi familiar cuando estaba jugando con la baraja española que acabaría utilizando integrales definidas con polinomios de Laguerre para contestar a mi pregunta sobre la probabilidad de ganar en el juego?

Pero una cosa sí que tengo constatada, cuando se dispone de tiempo libre siempre surgen buenas ideas. La rutina diaria y el ritmo de vida acelerado nos bloquean la creatividad. 

 

domingo, 24 de agosto de 2025

Probabilidad con baraja española: manotazo. Solución 2/3 (simulaciones)

 

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.
Porcentaje de éxito: 1.62534 %
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%.

Subimos el número de partidas simuladas a 10.000.000:

Se ha ganado el juego 162883 veces de un total de 10000000 partidas.
Porcentaje de éxito: 1.62883 % 
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.

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 😉

martes, 19 de agosto de 2025

Probabilidad con baraja española: manotazo. Solución 1/3 (exhaustiva)

En la entrada anterior planteé una cuestión de probabilidad en un juego de cartas con la baraja española.


¿Cuál es la probabilidad de ganar el juego sin que haya coincidido ninguna vez la carta destapada con el número cantado? 

O su complementario, ¿cuál es la probabilidad de "perder"? Entendemos perder en este contexto como que coincida en algún momento la carta destapada con el número cantado.

Una posible idea es utilizar la estrategia exhaustiva: construir TODAS las posibles barajas (ordenamientos de cartas) y comprobar en cuántas de ellas se gana/pierde el juego. A mano está claro que no lo vamos a hacer, pero ¿podemos hacer un programa que realice esa tarea por nosotros?

He realizado un programa en Python que implementa esta estrategia exhaustiva (ver código).

Por 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%). Para crear y recorrer todas las barajas posibles, mi ordenador ha tardado algo menos de 4 minutos y medio.

El problema viene cuando ponemos las condiciones del problema: 13 números y 4 palos. El número de permutaciones (barajas distintas) es:

 92.024.242.230.271.040.357.108.320.801.872.044.844.750.000.000.000

Y, claro, va a llevar muuuuuucho más tiempo llegar a la solución de esa manera.

Así que, una vez más, aunque tengamos un algoritmo que resuelve el problema, la realidad con un ordenador medio es que no es factible llegar a la solución en un tiempo razonable.

¿Habrá alguna estrategia alternativa? A seguir pensando...

 

PD: La librería itertools de Python tiene una función para calcular todas las variaciones de un conjunto, pero no tiene ninguna para hacer lo propio con multiconjuntos (elementos que se repiten). Por ello se ha implementado la función permutaciones_repeticion dentro del programa para evitar repetir ordenamientos ya contados.


 

lunes, 18 de agosto de 2025

Probabilidad en juego con baraja española: manotazo

Hay un juego con la baraja española conocido popularmente como manotazo (dependiendo de la zona lo llaman diferente). Las reglas del juego son las siguientes:

  • Se barajan las cartas y se reparten todas entre el total de jugadores. Las cartas no pueden mirarse.
  • En orden, cada jugador canta el siguiente número (1, 2, 3, ...) a la vez que pone una carta boca arriba sobre la mesa, amontonándolas.
  • Cuando se llega al último número (puede ser 10, 12, 13, dependiendo de la baraja que se utilice) se vuelve a empezar la secuencia (1, 2, ...).
  • Si en algún momento coincide el número cantado con el número de la carta todos los jugadores deben poner su mano sobre el montón de cartas. El último jugador en poner la mano se lleva todas las cartas de la mesa.
  • Gana el primer jugador que logra quedarse sin cartas en la mano.


Siguiendo esas reglas, ¿es fácil o difícil que en un mazo de cartas barajadas alguna carta esté en la posición del número que contiene?

Planteado de otra manera. Si jugamos nosotros solos con una baraja de 52 cartas, ¿cuál es la probabilidad de ganar el juego sin que haya coincidido ninguna vez la carta destapada con el número cantado?


miércoles, 30 de julio de 2025

Sacar la bola "n" en la extracción número "n" (enunciado y preguntas)

 


Tenemos una urna con 5 bolas numeradas del 1 al 5. Hay que sacarlas de una en una al azar, sin mirar. Se pierde el juego si sacamos la bola "n" en la extracción número "n".

 

Ejemplo de victoria

Primera bola: 2

Segunda bola: 5

Tercera bola: 1

Cuarta bola: 3

Quinta bola: 4 

Ninguna bola se ha extraído en la posición que indica su número. Ganamos el juego.

 

Ejemplo de derrota

Primera bola: 3

Segunda bola: 1

Tercera bola: 5

Cuarta bola: 4

Aquí coincide el número de la bola con la posición en la que se ha extraído. Ya no hace falta seguir. Hemos perdido.

 

Antes de realizar ningún cálculo, contesta a las siguientes preguntas según tu intuición.

- ¿Es fácil ganar el juego?

- Te dicen que si ganas el juego te devuelven el doble de la apuesta realizada. ¿Te parece lucrativo en base al riesgo que asumes?

 

Ahora cuantifica la probabilidad de ganar y vuelve a contestar las preguntas anteriores.

Puedes compartir tu solución en los comentarios.

 

Más preguntas para pensar.

- Generalizar el problema para "n" bolas. 

- Conforme aumentamos el número de bolas, ganar el juego ¿es más fácil, más difícil o va variando?

miércoles, 21 de noviembre de 2012

Martin y Gala = Martingala. ¿Jugamos a la ruleta? (1ª parte)

Lo que se esconde detrás de la fantasiosa historieta de Martin y Gala es algo mucho más real de lo que puede desprenderse a simple vista del contexto inventado, que para muchos seguramente resulte un contexto demasiado artificial. Recordemos que el cambio de contexto es una posible estrategia que podemos utilizar en la resolución de un problema, cuando este no nos resulta cercano y por tanto nos resulta complicado de entender.

Forma parte de la grandeza y belleza de las matemáticas que resultados que surgen en un contexto resulten válidos y útiles en otros contextos.

En este caso el contexto no lo cambié con el objetivo de resolver el problema, sino con el objetivo de plantear el problema en un contexto "para todos los públicos". Y es que el problema original que quería abordar es el análisis de un método de juego para la ruleta. En según qué circunstancias plantear un problema de juegos de azar puede estar mal visto, sin embargo plantear una historia de guardianes de clubs secretos no.


El método de juego que quería analizar me lo contaron hace algún tiempo y la verdad es que tal y como me lo plantearon parecía una buena estrategia de juego. Hace poco, buceando en Internet, me reencontré con ella y supe que se conoce con el nombre de Martingala (de ahí el nombre del guardián Martin y del club Gala de mi historieta inventada).

En Internet podéis encontrar infinidad de páginas que explican dicho método de juego para la ruleta. Lo resumiré de la siguiente manera:
1. Empiezas apostando 1€ a un color (rojo o negro).
2. Si ganas, te llevas 1€ de ganancia y vuelves a empezar.
Si pierdes, apuestas el doble (2€) al mismo color.
3. Si ganas, te llevas 1€ de ganancia (te dan 4€ y habías apostado 1€+2€) y vuelves a empezar.
Si pierdes, apuestas el doble (4€) al mismo color.
... y así sucesivamente ...

Es decir, que pase lo que pase, con "la martigala" (como se la conoce entre los jugadores) al final te llevas 1€ cada vez que aciertas el color, recuperando las pérdidas que hayas podido acumular con los fallos previos.

¿A qué esperamos? ¡Vamos corriendo a reventar los casinos!
Un momento, no nos ceguemos con la fortuna que pensamos que obtendremos y vamos a analizarlo con un poco más de calma. Y como siempre, para ello utilizamos las matemáticas.

Algunas cuestiones previas a tener en cuenta:

- ¿Cuánto dinero necesito tener como fondo para aguantar una mala racha de resultados? (¿Os acordáis del nombre de la moneda de Martin?) O planteado de otra manera, con el dinero que tengo para apostar, que no es ilimitado, ¿cuán larga es la racha máxima que puedo soportar sin perderlo todo?
Supongamos que tengo 600€ para apostar. Empiezo por ejemplo apostando al rojo y salen 8 negros seguidos. La primera apuesta es de 1€ (2⁰), la segunda 2€ (2¹), la tercera 4€ (2³), ..., la octava 128€ (2⁷) y para jugar la novena debo poner sobre la mesa 256€ (más todo lo que he puesto ya y he perdido, 255€). Si sale rojo recuperaré lo perdido y tendré ¡1€ de ganancia!. Si sale otra vez negro, lo perderé todo porque no tengo más fondo para seguir doblando la apuesta.

- Y uno puede pensar: "bueno, pero que salgan 9 negros seguidos es casi imposible, y si aumento mi fondo podré asegurarme contra rachas más largas aún". Sin entrar en que la mayoría de casinos tienen apuestas máximas, lo cierto es que tengas el dinero que tengas, no es ilimitado, aunque es cierto que podrás aguantar rachas más largas. Pero, ¿cuál es la probabilidad de que pierdas tu fondo antes de sacar una ganancia igual a lo que pones en riesgo? Es decir, si mi fondo es de 511€ ((2^10)-1) podré aguantar una racha de 8 fallos, pero al 9 fallo encadenado pierdo los 511€. ¿Qué probabilidad hay de que pierda los 511€ que pongo en juego antes de sacar 511€ de beneficio (ganando 1€ 511 veces)?

- Las ruletas tienen el número 0, que no es ni negro ni rojo, por lo que la probabilidad de los colores no es exactamente del 50%. ¿Influye esto mucho en los resultados de la estrategia? En principio uno puede pensar que le da igual, si sale 0 cuenta como fallo y sigue con el método de doblar la apuesta.


... CONTINUARÁ ...