Combinatoria (I). Combinaciones, variaciones y permutaciones

Cuando nos disponemos a aplicar la Regla de Laplace para calcular la probabilidad de un suceso A, necesitamos conocer el número de casos favorables y el de casos posibles:

Para un experimento como el de lanzar un dado, calcular el número de casos posibles es sencillo. Sabemos que existen 6 posibles resultados. Si el suceso objeto de estudio es “sacar par”, también podemos calcular mentalmente que son 3 los casos favorables (los resultados: 2,4,6).

Con estos datos, calcular la probabilidad del suceso A es inmediato: “sacar par con un dado”: P(A)=3/6=0,5 (un 50%).

Técnicas de recuento

Sin embargo, el problema se puede complicar. Imaginemos que el experimento que estudiamos es el lanzamiento, no de un dado, sino de 2 dados a la vez, y que el suceso objeto de estudio es “sacar suma par”.

Ahora el número de casos posibles ya no es 6. Y el número de casos favorables para “sacar suma par”, no es 3. En ambos casos son muchos más. Pero, ¿cuántos casos exactamente? Para calcular con exactitud la probabilidad de un suceso es necesario hacer un recuento exacto de los casos favorables y posibles. Y es aquí donde entra en juego la combinatoria.

Hay 18 formas diferentes de combinar los resultados de dos dados para obtener una suma par, de un total de 36 parejas posibles de resultados.

La probabilidad del suceso A “sacar sumar par con 2 dados” es: P(A)=18/36=0,5 (un 50%). El número de casos favorables y posibles es diferente y mucho mayor que con un solo dado (aunque observamos que la probabilidad vuelve a ser un 50%).

En general, se trataría de buscar métodos ordenados para no dejar ninguna combinación fuera. Podemos emplear estructuras en forma de matriz (como la tabla anterior), en forma de árbol, etc. para realizar un recuento ordenado.

Para unos pocos elementos podemos anotar todas las posibles combinaciones. Sin embargo, cuando el número de elementos crece considerablemente, se hace necesaria alguna fórmula que simplifique el cálculo de todas las combinaciones posibles. Por ejemplo, para calcular el número total de parejas del problema anterior, bastaría con aplicar una sencilla fórmula:

donde m (6) es el número de posibles resultados al lanzar un solo dado, y n (2) es el número de dados que utilizamos. Para este problema en particular, estaríamos aplicando la fórmula de variación.

De esta forma, dependiendo del tipo de problema – si el orden de los elementos es importante o si podemos repetir elementos – nos enfrentamos a distintos tipo problemas de combinatoria: combinaciones, variaciones y permutaciones, con y sin repetición.

¿C, V o P? ¿CR, VR o PR?

¿Cómo saber a qué tipo de problema de combinatoria nos enfrentamos? Básicamente, hay que plantear 3 preguntas:

  1. ¿Importa el orden? (O)
  2. ¿Se hacen subgrupos? (S) (si se utilizan todos los elementos, no se hacen subgrupos)
  3. ¿Se pueden repetir elementos? (R)

Ficha 1. Combinatoria (I). Combinaciones, variaciones y permutaciones

Comparto esta ficha que reúne los primeros apuntes sobre combinatoria. En breve, publicaré nuevos apuntes con fórmulas y varios ejemplos de aplicación.

Apuntes | Ficha 1. Combinatoria (I). Combinaciones, variaciones y permutaciones
En Tiching | Combinaciones, variaciones y permutaciones

Trocitos de código (I). Lanzando una moneda millones de veces: ¿cara o cruz?

Hace unos días explicaba cómo realizar una simulación del lanzamiento de un dado utilizando las funciones de generación de número aleatorios y de recuento de la hoja de cálculo. Los resultados del experimento permitían comprobar la Ley de los Grandes Números.

Diseñar la hoja de cálculo que simula el experimento no entraña demasiada dificultad, si uno sigue los pasos indicados en la actividad y ha utilizado fórmulas de hoja de cálculo en alguna ocasión (recomiendo echar un vistazo a las fichas sobre OpenOffice Calc que preparé hace tiempo). Sin embargo, el entorno de hoja de cálculo no siempre es el más adecuado para realizar algunos experimentos. Cualquiera que intente aumentar el número de lanzamientos de dado de la actividad, comprobará que la memoria del sistema se resiente, y es más que probable que el ordenador se «cuelgue» durante algunos segundos. Los programas de ofimática son lo que son; no les podemos pedir más.

En realidad es una excusa para introducir una nueva sección en el blog: «Trocitos de código», entradas en las que comparto algún fragmento de código (conocidos en inglés como, Code Snippets) escritos con algún lenguaje de programación y que resuelve algún problema concreto. No es mi intención (de momento) explicar ningún concepto de programación, pero si despertar la curiosidad por este arte y utilizarla como herramienta para poner a prueba y comprender mejor algunos conceptos matemáticos.

Lanzamiento de una moneda

En esta ocasión propongo la simulación del lanzamiento de una moneda para comprobar de nuevo la Ley de los Grandes Números:

«La frecuencia relativa de un suceso tiende a estabilizarse hacia una constante a medida que se repite el experimento.»

En el caso de una moneda, en cada lanzamiento la probabilidad de que salga «cara» o «cruz» es exactamente la misma (son sucesos equiprobables), de modo que para cada posible resultado la probabilidad es del 50% (0,5 para «cara» y 0,5 para «cruz»).

La probabilidad de un suceso es la constante a la que se aproxima la frecuencia relativa cuando el experimento se repite muchísimas veces.

Simulación con Java: versión «mini»

Sabemos que debemos repetir el experimento de lanzar la moneda un número «muy grande» de veces. El siguiente fragmento de código escrito en Java realiza precisamente el experimento de lanzar una moneda. Por defecto lo hace 10 millones de veces (l=10000000) y cada 5000 lanzamientos (m=5000) muestra la frecuencia relativa hasta el momento. Lógicamente, estos valores se pueden cambiar.

Para modificar el problema, bastaría con utilizar cualquier editor de «texto plano» para realizar los cambios. Y para generar el programa final y probarlo, habría que disponer de un entorno de compilación y ejecución de Java. Bien, nada de esto es necesario. Existen en Internet algunos entornos de compilación y ejecución online, que permiten probar fragmentos de código. Este es el caso de rextester, una página web en la que podemos escribir nuestro código en varios lenguajes de programación y probar su funcionamiento, además de guardarlo y compartirlo con otros usuarios.

He utilizado este entorno para que podáis probar fácilmente la versión «mini» del programa que realiza la simulación del experimento (clic sobre la imagen del código). Una vez en la web de rextester, basta con hacer clic sobre «Run it» o darle a la tecla F8.

Simulación con Java: versión completa

La versión anterior utiliza el código mínimo (o casi) para realizar la simulación. Este segundo ejemplo de código, mucho más completo y con comentarios, muestra la simulación paso a paso, con los detalles de los lanzamientos de moneda.

Una vez lanzada la simulación, observamos los resultados del experimento. En cada fila aparecen 10 lanzamientos de moneda, con una C o una X, según el resultado de «cara» o «cruz» obtenido. Cada 10 lanzamientos se calcula la frecuencia relativa del suceso «sacar cruz». En los primeros lanzamientos, observamos que el valor de frecuencia relativa ronda 0,5 pero es inestable.

Sin embargo, a medida que el número de lanzamientos crece considerablemente, comprobaremos que la frecuencia relativa se va estabilizando y aproximando de forma más exacta al valor 0,5.

Simulación con GeoGebra

Este mismo experimento se puede realizar también con GeoGebra, un software para matemáticas del que ya he hablado en Esfera TIC en más de una ocasión. La simulación del experimento de lanzar una moneda se puede repetir 10, 100 y 1000 veces.

En Tiching | Lanzando una moneda millones de veces
Código 1 | Lanzamiento de una moneda (versión mini)
Código 2 | Lanzamiento de una moneda (versión completa)
Simulación con GeoGebra | Lanzamiento de una moneda
Foto código | Ruby ruby de Elliott Cable en Flickr
Foto moneda | Lucky Six – PCA 58 de Donald Macleod

Azar y probabilidad: la falacia del jugador

Algo tiene la probabilidad que, incluso tratándose de matemáticas, tiene cierto éxito entre otros temas del libro. Al menos al principio. También es cierto que cuando se introducen conceptos de teoría de conjuntos, combinatoria y otras formulaciones, muchas veces la emoción por el tema se desvanece. En cualquier caso, parece que todo lo que tenga que ver con el juego, siempre atrae más al alumnado.

La probabilidad estudia los experimentos aleatorios o de azar. El cálculo de probabilidades trata de medir hasta qué punto puede suceder un fenómeno. Y en ocasiones nos sorprendería la probabilidad teórica de un suceso, frente a lo que pueda decir nuestro instinto.

Presento en este artículo algunos ejemplos y recursos que pueden servir para motivar el tema de probabilidad en el aula.

Números «feos» en la lotería… ¿pero improbables?

En 1903 tocó el Gordo de Navidad con el número 20297, y 103 años después, en 2006, volvió a salir el mismo número. Ocurrió también en 1956 y 1978, con el número 15560. La pregunta es, ¿jugarías estas Navidades a la lotería con algún número que ya hubiera salido años anteriores? Un primer impulso sería «jugar mejor a otro número», argumentando que ya tocó, y además, en dos ocasiones cada uno. Y si el número hubiera sido uno como el 01010, probablemente tampoco jugaríamos, pero por otros motivos: parece poco probable.

Hay números que a primera vista parecen más probables, y de otros números diríamos que es imposible que salieran en un sorteo. Por otro lado, existe en muchos lugares la tradición de jugar al mismo número cada año (con la creencia de que así aumentan las probabilidades). Nada de esto es cierto. Pensar que los sucesos pasados afectan a los futuros en lo relativo a actividades aleatorias, como en muchos juegos de azar, es lo que se conoce como la falacia del jugador.

La falacia del jugador: cuando la intuición falla

El programa tres14 hablaba precisamente sobre el fenómeno, de cómo al jugar a la lotería, hay números que nos despiertan más confianza que otros. Por ejemplo, si tuviéramos que elegir entre jugar al 03333 o al 25687, una gran mayoría optaría por el segundo, cuando sabemos que uno u otro son igualmente probables.

La falacia del jugador puede comprender varias ideas equivocadas. La primera es que un suceso aleatorio tiene más probabilidad de ocurrir porque no ha ocurrido durante cierto periodo. Por ejemplo, si al lanzar una moneda 10 veces ha salido cara, quizá pensemos que es más probable que salga cruz en la siguiente tirada, cuando en realidad, en cada lanzamiento de moneda, sacar cara y cruz son sucesos equiprobables.

Otra razonamiento erróneo es que un suceso aleatorio tiene menos probabilidad de ocurrir si ocurrió recientemente. Volviendo al ejemplo de la lotería, podríamos pensar que si durante dos años consecutivos ha tocado el mismo número en nuestra ciudad, es muy improbable que vuelva a suceder. En realidad, podríamos decir cada año «se pone el contador a cero» en lo que a probabilidades se refiere. El hecho de que haya tocado la lotería el año pasado no influye en la probabilidad de que toque dicho número de nuevo en las Navidades de este año.

Otro ejemplo de falacia es un clásico chiste de matemáticos, que dice así:

Cuando vuela en avión, un hombre decide llevar siempre una bomba consigo. «Las probabilidades de que en un avión haya una bomba son muy pequeñas —razona—, ¡así que las probabilidades de que haya dos son casi nulas!»

Seguramente nosotros no haríamos nunca un razonamiento como el del viajero en el avión, pero en otras situaciones sí podríamos dejarnos llevar por el instinto y equivocarnos en nuestra decisión (de realizar una apuesta, por ejemplo).

Sucesos aparentemente improbables

¿Apostarías algo a que en un grupo de 23 personas al menos 2 cumplen años el mismo día? Seguramente la primera respuesta intuitiva es «no». Sin embargo, sabiendo que la probabilidad es de más del 50%, quizá valdría la pena arriesgar. Este problema se conoce como la paradoja del cumpleaños, que expliqué ya con un caso práctico, un experimento con grupos de contactos en una red social.

Otro ejemplo que demuestra que debemos fiarnos más de las matemáticas que de nuestro propio instinto es el conocido problema de Monty Hall. La explicación detallada de por qué la opción aparentemente menos probable tiene en realidad el doble de probabilidad, la publiqué en «La intuición nos puede engañar, las matemáticas no». Un buen resumen es esta escena de la serie Numbers:

Falacia del jugador | Wikipedia | Programa tres14: «Curiosidades científicas – Nuestra intuición falla con el azar»
Reportaje | Loterías, retando a la probabilidad
El problema de Monty Hall | La intuición nos puede engañar, las matemáticas no
La paradoja del cumpleaños | Experimento en redes sociales