probabilidadAjustada(mano1, mano2) { //Define la probabilidad de que salga una mano en función de otra
prob = 0;
if(suited(mano2)) {
if(comparten(mano1,mano2) == 2) { //Dos de las cartas son iguales ej: AK vs. AK
prob = 6/50 * 1/50;
} else if (comparten(mano1,mano2) == 1) {
prob = 4/50 * 1/50 + 3/50 * 1/50; //Separo por claridad
} else {
prob = 8/50 * 1/50;
}
} else {
if(comparten(mano1,mano2) == 2) { //Dos de las cartas son iguales ej: AK vs. AK
prob = 6/50 * 3/50;
} else if (comparten(mano1,mano2) == 1) {
prob = 4/50 * 3/50 + 3/50 * 4/50;
} else {
prob = 8/50 * 3/50;
}
}
}
Rango1[n];
Rango2[m];
sumaprob1 = 0;
probAjustada = 0;
sumaprob2 = 0;
equity = 0;
sumaequity = 0;
for(i = 0; i < n; i++)
sumaprob1 = probabs + probabilidad(rango1);
for(i = 0; i < n; i++) {
for(j = 0; j < m; j++) {
sumaprob2 = sumaprob2 + probabilidadAjustada(rango1, rango2[j]); //Llevamos la suma para luego convertir el equity dividiendo cada termino de la suma
//y por ende la suma total, por el total dando probabilidad relativa al rango
equity = equity(rango1,rango2[j]) * probabilidadAjustada(rango1, rango2[j]);
}
sumaequity = probabilidad(rango1) / sumaprob1 * equity / sumaprob2;
equity = 0;
}
resultado = sumaequity;
Aquí lo que hago es lo siguiente: calculo la probabilidad total de las manos del rango 1, para calcular la probabilidad relativa en el primer rango.
Luego para cada mano del rango 1, calculo el equity contra cada mano del rango 2, y lo multiplico por la probabilidad ajustada de la mano del rango dos(la probabilidad de que salga la mano 2, dada que ya salió la mano 1).
Al final, el equity total lo divido por la probabilidad total sumada de las manos del rango dos, para lograr probabilidad relativa en todas las manos.
A la suma de equity total le agrego el resultado de ese cociente multiplicado por la probabilidad de la mano1 relativa al rango1.
Me parece la mejor solución posible.
Cualquier cosa, avisame.
PD: lamentablemente no sale el identado