¿Cómo se calculan?

Aquí se describe con bastante detalle el procedimiento seguido para realizar estos cálculos. Todo esto es meramente informativo y no hace falta para nada para poder utilizarlo por lo que se recomienda esta lectura sólo para quien esté muy interesado en los entresijos del cálculo empleado.

Base matemática:
- Probabilidades
La base para todos estos cálculos es la teoría de probabilidades. Pero de todo lo que incluye esta rama de las matemáticas, nos bastará con fijarnos tan sólo en una de sus reglas básicas como es la llamada regla de Laplace, que dice que la probabilidad de un suceso se obtiene dividiendo los casos favorables entre los casos posibles.



Aplicada en nuestro caso se traduce en que si queremos calcular la ley de una jugada en un lance (o sea la probabilidad de que nuestra jugada sea superior a la de los contrarios en dicho lance) es tan "sencillo" como averiguar por un lado los casos posibles: el número de jugadas que pueden darse en la pareja contraria con las cartas del mazo, habiendo quitado las nuestras; y por otro lado tendremos que averiguar los casos favorables: cuántas de todas esas jugadas posibles serían peores que la propia.

Aunque la parrafada para decir todo esto haya quedado un tanto larga, la realidad es que matemáticamente es tan sencillo como una simple división de esos 2 números. La complejidad estará naturalmente en hallar cada uno de dichos números, pero para eso ya no hace falta teoría de probabilidades sino Combinatoria.
- Combinatoria
La herramienta fundamental que utilizaremos para todos estos cálculos será la Combinatoria. Esta otra rama de las matemáticas nos permite conocer y calcular las colecciones distintas que pueden darse a partir de un conjunto finito de elementos.

En nuestro caso particular este conjunto estará formado por el mazo de cartas de la baraja, de la que sabemos que inicialmente hay 40 cartas y una vez le quitemos las 4 de la jugada propia (o las 8 si conocemos también la del compañero), nos quedarán 36 (ó 32) cartas con las que formar grupos distintos de jugadas de 4 cartas para cada uno de los 2 contrarios.

La fórmula matemática para calcular las combinaciones de m elementos tomados de n en n es la siguiente:



La notación más utilizada es el paréntesis con los 2 números m,n, que se denomina coeficiente binomial.
El símbolo ! indica factorial. N! es el resultado de multiplicar 1x2x3... hasta N.

Igual alguno ya empieza a asustarse por estas fórmulas con letras y símbolos raros, pero no hay que tenerle mucho miedo: en realidad, dados unos números concretos m y n (por ejemplo 30 y 4), todo se quedará en unas pocas multiplicaciones de números enteros bastante pequeños y luego una división. Vamos, que por poder, se puede hacer hasta sin calculadora y en un ratito corto.

En los apartados siguientes se indican ya cálculos concretos a aplicar, pero es importante tener en cuenta que no se pretende aquí demostrar las fórmulas matemáticas de la combinatoria sino que nos limitaremos a indicar cuales son las utilizadas como base para la aplicación de cálculo de leyes.
- Combinaciones para 1 jugada
Si partimos de una baraja de 40 cartas, de las cuales sabemos que hay 8 reyes y 8 ases y 4 de cada uno de los 6 tipos restantes (C,S,7,6,5,4), y si la jugada propia es por ejemplo RRCA, podemos calcular cuántas combinaciones posibles de jugadas (de mus, de 4 cartas) quedan con las 36 cartas restantes, es decir: 6 reyes, 3 caballos, 7 ases y 4 de cada una del resto.

En esas condiciones, el nº de combinaciones posibles que tendría una determinada jugada que pensemos que pueda tener un contrario, por ejemplo RRCS, sería de:



Donde cada factor es un coeficiente binomial de los vistos en el apartado anterior. Habrá tantos como cartas distintas tenga la jugada a buscar (en este caso 3 para R, C y S), y en cada uno el número de arriba son las cartas que quedan de ese tipo mientras que el de abajo son las cartas de ese mismo tipo que necesita la jugada. Por ejemplo el primer factor es 6,2 porque quedan 6 reyes en la baraja y la jugada RRCS necesita 2 reyes.





Y para pasarlo de nº de combinaciones a probabilidad, bastaría dividirla por el nº de jugadas posibles con las 36 cartas:



Con lo que la probabilidad de que otro jugador saque RRCS cuando la jugada propia sea RRCA es de:



Este dato aislado no parece decir mucho, pero si hacemos este cálculo para cada una de las jugadas posibles (son 330 en el mus de 8 reyes), tendremos la probabilidad de que el contrario haya podido coger cada una de ellas (cuando nosotros tenemos la jugada inicial de RRCA, pero el cálculo se podría rehacer para cualquier otra jugada propia).
Naturalmente todas ellas sumadas deben dar el 100% siendo el valor de cada una su "peso" relativo dentro del total, lo que da una idea de lo fácil o difícil que será que la tenga o una forma de saber cuáles son más probables y cuánto.

Algunos cálculos de mus se han conformado con quedarse en este paso, y con eso ya pueden empezar a cuantificarse los valores de las jugadas a un lance sumando los pesos del resto de jugadas inferiores, y se obtienen unos valores que ya permiten saber si una jugada es mucho mejor o tan sólo un poco mejor que otra, y poder poner un número a esas diferencias.

Pero el paso siguiente es pensar ya en una partida real donde no están solas la jugada propia y la posible de un contrario, sino que tenemos 2 contrarios y un compañero, y lo que queremos evaluar es lo buena o mala que es nuestra jugada conjunta de la pareja frente a la que pueda tener la pareja contraria en su conjunto. Esto es lo que veremos en el siguiente apartado.
- Combinaciones para 2 jugadas
Se puede pensar en intentar extrapolar los cálculos del paso anterior a la nueva situación (2 jugadas propias y 2 contrarios) a base de fórmulas de probabilidad que nos combinen estos casos, y hay algunas buenas aproximaciones, pero el problema que tienen es que ignoran los condicionamientos cruzados entre las diversas jugadas y como la realidad es que estos condicionamientos existen (las cartas que tenga cada uno influyen en las que pueda tener el resto), el mejor enfoque es contemplar en su conjunto las 4 jugadas para evitar los errores aunque a cambio compliquemos un tanto el cálculo.

Ahora, si partimos de la baraja de 40 cartas, de la que ya sabemos su composicón, y si la jugada propia es igual que antes RRCA, pero también sabemos la del compañero Ej: RCC7, podemos calcular cuántas combinaciones posibles de jugadas para los contrarios (2 jugadas de 4 cartas) quedan con las 32 cartas restantes, es decir: 5 reyes, 1 caballo, 7 ases y 4 de cada una del resto, menos 7's que hay 3.

En esas condiciones, el nº de combinaciones posibles que tendría una determinada jugada que pensemos que puedan tener los contrarios, por ejemplo RRCS y S774, sería de:



Donde cada factor es un coeficiente binomial igual que en el apartado anterior. Habrá tantos como cartas distintas tenga cada una de las 2 jugadas a buscar (en este caso 6 para R,C,S del 1º y S,7,4 del 2º), y en cada uno el número de arriba son las cartas que quedan de ese tipo mientras que el de abajo son las cartas de ese mismo tipo que necesita la jugada. Por ejemplo el primer factor es 5,2 porque quedan 5 reyes en la baraja y la jugada RRCS necesita 2 reyes.
Se observa en el 4º término, correspondiente a la sota del 4º jugador, que el número de cartas existentes son 3 porque se descuenta la de la jugada del otro contrario. Sin embargo para el término anterior, que es la sota del primer jugador de los contrarios, ahí si se cuentan como 4 restantes sin descontar la del otro. Esto es así por el efecto multiplicativo de las combinaciones: primero se calculan toas las jugadas de 4 cartas para el 1er jugador y luego para cada una de ellas se calculan todas las del otro y ahí ya deben descontarse las ya repartidas al 1er jugador. Se podría invertir el orden y daría igual pero siempre deben aplicarse todas las combinaciones de uno respecto de cada una del otro.

Y para pasarlo de nº de combinaciones a probabilidad, bastaría dividirla por el nº de jugadas posibles con las 32 cartas (que ahora con menos cartas son muchas más que antes porque cada combinación es de 4 + 4 cartas):



Y si hacemos este cálculo para cada una de las jugadas posibles (son 330 x 330 en el mus de 8 reyes), tendremos la probabilidad de que los contrarios hayan podido coger cada una de ellas (cuando nosotros tenemos la jugada inicial de RRCA y RCC7, pero el cálculo se podría rehacer para cualquier otra combinación de jugadas propias).
Naturalmente todas ellas sumadas deben dar el 100% siendo el valor de cada una el "peso" relativo de cada una dentro del total, lo que da una idea de lo fácil o difícil que será que la tengan o una forma de saber cuáles son más probables y cuánto.

Como vemos, el cálculo no es que se haya hecho más complejo, sino que se ha elevado drásticamente el número de operaciones a realizar puesto que en cada combinación se ha duplicado el número de factores a multiplicar y sobre todo, ahora hay que hacer este cálculo individual unas 100.000 veces en lugar de las 330 veces del caso inicial.
Afortunadamente no tenemos que asustarnos por estos números, porque resulta que a los ordenadores es justo lo que más les gusta hacer: operaciones sencillas muchísimas veces repetidas, y lo hacen a velocidad de vértigo y sin equivocarse, así que ya tenemos la solución planteada y lo único que falta es pasar esto al lenguaje del ordenador para que entienda lo que queremos, porque a pesar de que esto lo haya estado escribiendo en un ordenador, "él" ni se ha enterado de qué iba la cosa, y necesita que se le haga un programa indicando cada instrucción y cómo y cuándo debe hacerla, de dónde coger los datos y dónde guadarlos.
Debido a que los ordenadores son efectivamente tan "tontos", la complejidad para escribir el programa de ordenador es bastante más elevada que lo que ha costado escribir el texto anterior, pero la gran ventaja que tiene es que luego una vez escrito y probado, el ordenador ya ha aprendido lo que tiene que hacer y se le puede dejar sólo que ya será capaz de repetirlo una y otra vez para todo el que se lo pida.

Pasos para el cálculo:
- Introducción
Tampoco vamos a ver aquí el programa del ordenador en su lenguaje (aunque está disponible para cualquier interesado en el apartado de Descargas), sino que vamos a intentar describirlo en lenguaje más entendible por humanos.
Se describirá tanto la estructura de datos utilizada como las líneas generales del cálculo, siempre a partir de las fórmulas de combinatoria indicadas en apartado anterior.
- Matriz de CARTAS
Lo 1º que se necesita es una matriz de CARTAS (una "matriz" no es más que un grupo de números ordenados) donde se indican algunos datos para cada una de las posibles cartas (R,C,S,7,6,5,4,A) (son 8 para el mus de 8 reyes y hasta 10 para el de 4 reyes).
Los datos que se guardan son: su nombre, el nº de cartas de cada tipo que hay en la baraja, y su valor unitario para cada lance (esto es una entelequia pensada para poder calcular luego unos valores objetivos de cada lance para cada jugada).
Esta matriz es bastante pequeña (unas 10 filas por 10 columnas: unos 100 datos).
Tiene que recalcularse para cada cambio que se haga en el modo de reyes o la 31 real.
- Matriz de JUGADAS
En 2º lugar se forma una matriz mayor para albergar datos de cada una de las posibles jugadas, los cuales se obtienen aplicando los valores de la anterior matriz de cartas para cada una de las 4 que componen cada jugada.
Los datos que contiene son: su nombre, su valor a cada lance, el nº de cartas de cada tipo que usa, etc.
Esta matriz es ya algo mayor que la anterior (unas 330 filas por 25 columnas: unos 8000 datos para mus de 8 reyes, y casi el doble para mus de 4 reyes).
Esta matriz también tiene que recalcularse para cada cambio que se haga en el modo de reyes o la 31 real.
- Matriz de CONTRARIOS
La matriz estrella de este cálculo es la matriz de "contrarios" donde se recogen cada una de las posibles combinaciones de jugadas que pueden tener cada uno de los 2 contrarios.
Esta matriz que tendrá ya 330 x 330 celdas (son más de 100.000, y para 4 reyes serían 715x715 = más de medio millón). Contiene en cada una de dichas celdas el peso de cada combinación posible, teniendo ya en cuenta las cartas que quita la jugada propia seleccionada. Es decir la fórmula que se vió en el apartado anterior de Combinaciones de 2 jugadores.
Los datos de la composición de cada jugada se obtienen de la anterior matriz de jugadas.
Deberá por tanto reacalcularse a cada cambio de la jugada propia o también si cambia el modo de reyes o de la 31 real.
- Cálculo: matriz LEYES
El paso final para llegar a calcular las leyes consiste en ir recorriendo la anterior matriz de contrarios, y para cada una de las combinaciones ir viendo si la jugada conjunta es superior o inferior (en cada lance) a la jugada propia e ir acumulando los pesos de todas las que sean inferiores de modo que al terminar de recorrer toda la tabla tengamos el peso total de las jugadas a las que ganamos con la nuestra, que es la definición de las leyes que buscábamos.
Se calculan así las leyes para los 4 lances y también para las 4 posibles posiciones del mano de modo que quedan 16 valores finales en una matriz interna denominada leyes.

Los resultados que se ven finalmente en la aplicación corresponden a una de las filas de esta matriz de leyes, según la seleccion del jugador mano.
Además se aprovecha para convertir los valores a presentar en porcentajes con 2 decimales, ya que internamente se guardan con bastante mayor precisión.

En el fondo lo que se ha descrito no deja de ser otra cosa que el típico método de "la cuenta de la vieja", es decir, para hallar la ley de una jugada lo que estamos haciendo es calcular una a una todas las posibles combinaciones de jugadas que pueden tener los contrarios, y en cada una de ellas, con infinita paciencia, primero calculamos cuántas combinaciones de cartas pueden darse y luego vamos repasándolas una a una y comparándolas con nuestra jugada: si es menor sumamos su peso y si no, no. Y al acabar toda la ronda obtenemos el total buscado.
Difícil no es, pero sí resulta un tanto pesado, y si hubiera que hacerlo a mano, o incluso con calculadora, la pobre "vieja" que tuviera que hacer esta cuenta no viviría para repetirlo muchas veces.
- Optimizar 1: combinaciones
Como la mayoría de los cálculos para rellenar la matriz de contrarios hacen uso de la fórmula de combinaciones, y lo hacen para números relativamante bajos que se repiten mucho, se gana bastante en el tiempo de ejecución si se tienen ya los resultados de estas combinaciones precalculados en una matriz y así basta leer el dato correspondiente en lugar de tener que calcularlo de nuevo.
Esta matriz basta calcularla al inicio y ya vale para siempre.
- Optimizar 2: índices
Para hacer más rápida la suma de los pesos en la matriz de contrarios de las jugadas inferiores a la propia, vendría muy bien que estuviera esta matriz ordenada por el valor del lance a calcular, con lo que bastaría sumar el contenido de unas pocas zonas contiguas en lugar de tener que recorrer las celdas una a una.
Esto se consigue en la práctica sin tener que reordenar realmente esta matriz para cada lance a base de tener una matriz auxiliar de índices en la que están guardadas las posiciones relativas de dicha matriz original para cada uno de estos lances y accediendo indirectamente con estos índices conseguimos el efecto deseado.
Esta matriz de índices debe recalcularse siempre que lo haga la matriz de jugadas, es decir, al cambiar el modo de reyes o la 31 real.
- Condicionadas
Para introducir en los cálculos las condiciones de pares y juego de los contrarios se han añadido algunas modificaciones sobre la estructura anteriormente descrita:
- La matriz de contrarios tiene en realidad una segunda capa que se rellena con valor 1 ó 0 dependiendo de si debe o no contemplarse cada combinación de jugadas para la selección de pares y juego que esté activa. Estos valores se multiplican por el peso (que está en la celda correspondiente de la otra capa de la matriz) con lo que se consigue utilizar los mismos cálculos con o sin condiciones.
- Para rellenar los valores de esa 2ª capa se utiliza una matriz auxiliar denominada paryjuego donde se va actualizando con cada cambio de condiciones la validez o no de cada una de las 16 combinaciones de pares y juego de contrarios existentes (4 para pares-juego de cada uno: No-No, No-Sí, Sí-No, Sí-Sí). Los estados desconocidos ("?") no se tratan como tales sino que engloban al Sí y al No correspondiente.
- Aprovechando esta nueva matriz auxiliar de pares y juego, se le ha dado una segunda función para almacenar los pesos totales de cada combinación de pares y juego, lo que permite calcular las probabilidades de que los contrarios tengan o no pares o juego en cada caso, por lo que también se permite mostrar estos resultados junto a los de las leyes. Estos valores son igualmente utilizados para hallar el total de combinaciones que ya vimos que hace falta para los cálculos, y que para el caso de condicionadas debe restringirse tan sólo a las contempladas por la selección de condiciones activa en cada momento.
- Tiempos de ejecución
Aunque parezca mentira, toda esta ingente cantidad de cálculos descritos los puede hacer el ordenador casi al instante y de hecho es lo que hace cada vez que se cambia la jugada a calcular, y los resultados aparecen de inmediato sin que se aprecie apenas retardo (siempre que se use un navegador decente, claro).
El tiempo de respuesta esperable para obtener los datos de resultados tras hacer cualquier cambio debería ser menor de 1 segundo. Si tarda más deberían revisarse los requerimientos para ver qué es lo que puede estar faltando.
-----------------------------------------
Si tuvieras activado Javascript podrías ver esta página un poco mejor con detalles desplegables u ocultables.