flyzto 6 maanden geleden
bovenliggende
commit
4c939da537
1 gewijzigde bestanden met toevoegingen van 16 en 9 verwijderingen
  1. 16 9
      server/triangle/trangleCalc.js

+ 16 - 9
server/triangle/trangleCalc.js

@@ -52,7 +52,7 @@ function getOptimalSelections(odds, rules) {
             isValid = false;
             break;
           }
-          const best = candidates.reduce((a, b) => item[a]*obRebate > item[b]*hgRebate ? a : b);
+          const best = candidates.reduce((a, b) => (item[a]-1)*obRebate > (item[b]-1)*hgRebate ? a : b);
           selection.push({
             k: key,
             p: best,
@@ -166,27 +166,33 @@ const triangleGoldCalc = (oddsInfo, oddsOption) => {
     return;
   }
   const { crossType, innerIndex, rebateA: A = 0, rebateB: B = 0, rebateC: C = 0 } = oddsOption;
+  const k1 = a * (1 + A);
+  const k2 = 1 - A;
+  const k3 = b * (1 + B);
+  const k4 = 1 - B;
+  const k5 = c * (1 + C);
+  const k6 = 1 - C;
   let x = innerDefaultAmount;
-  let y = (a + a*A + 1 - A) * x / (b + b*B + 1 - B);
+  let y = (k1 + k2) * x / (k3 + k4);
   let z;
   switch (crossType) {
     case 'la_wh_wa': // 全输 半赢 全赢
-      z = (b + b*B) * y / 2 / (c + c*C + 1 - C);
+      z = k3 * y / 2 / (k5 + k6);
       break;
     case 'la_dr_wa': // 全输 和局 全赢
-      z = (b + b*B) * y / (c + c*C + 1 - C);
+      z = k3 * y / (k5 + k6);
       break;
     case 'la_lh_wa': // 全输 半输 全赢
-      z = (2*b + 2*b*B + 1 - B) * y / 2 / (c + c*C + 1 - C);
+      z = (k3 + k4 / 2) * y / (k5 + k6);
       break;
     case 'lh_dr_wa': // 半输 和局 全赢
-      z = ((b + b*B) * y - (1 - A) * x / 2) / (c + c*C + 1 - C);
+      z = (k3 * y - k2 * x / 2) / (k5 + k6);
       break;
     case 'lh_lh_wa': // 半输 半输 全赢
-      z = ((2*b + 2*b*B + 1 - B) * y / 2 + (1 - A) * x / 2) / (c + c*C + 1 - C);
+      z = ((k3 + k4/2) * y - k2x / 2) / (k5 + k6);
       break;
     case 'la_la_wa': // 全输 全输 全赢
-      z = (b + b*B + 1 - B) * y / (c + c*C + 1 - C);
+      z = (k4 + k4) * y / (k5 + k6);
       break;
     default:
       z = 0;
@@ -225,11 +231,12 @@ const eventSolutions = (oddsInfo, oddsOption) => {
   const profitInfo = triangleProfitCalc(goldsInfo, oddsOption);
 
   const { odds_side_a, odds_side_b, odds_side_c } = goldsInfo;
-  const { win_average } = profitInfo;
+  const { win_side_a, win_side_b, win_side_c, win_average } = profitInfo;
   return {
     odds_side_a,
     odds_side_b,
     odds_side_c,
+    win_side_a, win_side_b, win_side_c,
     win_average,
     rebate_side_a: oddsOption.rebateA,
     rebate_side_b: oddsOption.rebateB,