Mostrando entradas con la etiqueta función exponencial. Mostrar todas las entradas
Mostrando entradas con la etiqueta función exponencial. 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, 23 de noviembre de 2008

Cadenas de correos electrónicos (y matemáticas)

Publicado originalmente el 7 de noviembre de 2007 en mi blog de la Societat Balear de Matemàtiques XEIX.
Hoy he vuelto a recibir otro e-mail para formar una cadena de estas para defender causas muy nobles. Antes de nada decir, por si alguien no se ha dado cuenta, que la mayor parte de estas cadenas no tienen otro objetivo que el de recopilar direcciones electrónicas de gente que después no sabe porqué le llega tanto spam (o cosas peores si uno es tan ingenuo como para abrir los ficheros adjuntos que le llegan en e-mails de gente que no conoce). Ésto está relacionado con lo que en el mundo de los hackers se denomina "Ingeniería social". Muchos ya sabéis que una manera de evitar cadenas de correos electrónicos es borrar del texto las direcciones de toda la gente que lo ha reenviado y reenviarlo como copia oculta (CO)
No me entretendré hablando de estas cadenas que dicen que donaran nosecuántos céntimos por cada vez que se reenvíe un correo porque ya me parece muy fuerte que la gente se crea que hay una superentidad que se dedica a revisar si un e-mail con cierto tipo de contenido se envía y cuántas veces se hace. Y eso por no decir que es totalmente ilegal que alguien pueda acceder al contenido de mis e-mails sin una orden judicial (excepto Bush claro).
Pero desde hace poco comienzo a recibir otro tipo de cadenas. Os explico. Éstas directamente te dicen que cuando lo reenvíes borres las direcciones anteriores y utilices la copia oculta. Como ya he dicho antes, todas suelen tener causas muy nobles y se dedican a hacer listados de firmas a modo de protesta o reinvidicación. Quien ponga su nombre en una determinada posición de la lista tiene que reenviar la lista al origen (para recopilar las listas y poder presentarlas como argumento de fuerza en contra o a favor de la causa).
Analicemos estas cadenas desde un punto de vista matemático. Simplificaremos mucho el problema y supondremos que la persona que escribe el mensaje original es A y que cada persona que reciba el mensaje sigue la cadena y lo reenvía a dos personas (son pocas) que no han recibido el mensaje.
Primera generación:
A
Segunda generación:
AB
AC
Tercera generación:
ABD
ABE
ACF
ACG
Cuarta generación:
ABDH
ABDI
ABEJ
ABEK
ACFL
ACFM
ACGN
ACGO
(todo esto queda más bonito y claro con un árbol, pero...)
En esta generación circulan 8 listas distintas pero todas ellas con miembros comunes (por ejemplo en las dos primeras listas salen A, B y D). Está claro que el número de listas que circulan en la generación "n" es igual a la potencia de base 2 y exponente n-1.
…
Ahora pensad que el mensaje original dice que quien escriba su nombre en el número 200 devuelva el mensaje a una dirección de correo elecrónico (en teoría la dirección del miembro A).
Tenemos que observar que A recibirá una cantidad de listas que no se corresponde (multiplicada por 200) con la cantidad de gente (sin repetir) que de verdad ha firmado. En esta situación simplificada si llegasen todas las listas de la generación doscientas a A (2 elevado a 199 son muchas listas) aún podríamos saber qué cantidad de gente ha firmado (no es muy difícil encontrar cómo calcular la solución, lo dejo por si alguien quiere pensarlo). Pero en la realidad sabemos que no todos siguen la cadena (por ejemplo yo) y entonces no tenemos una función tan bonita como la exponencial de base 2 (o cualquier otra base) y la cosa es mucho más compleja. Si al miembro original le llegan 1000 listas, ¿cómo puede saber qué cantidad de gente real (sin repetir) está a favor de su causa? Y una cosa tengo clara, no se pondrá a contar la gente revisando una por una las listas.
Sigo pensando que estas cadenas son una tomadura de pelo.