今年世界杯不太平,大家买球的输了不少吧,反正我一直在输,研究了下赔率和返还率,写了个算法,胜平负里面输入期中一个买入金额,输出其他两个金额。
返还率 = 预期收入 / 总投入
想算算威廉希尔和竞彩官方有没有稳赢的组合,结果没有。
class fiFa(): def __init__(self, winOdds, drawOdds, lossOdds): self.winOdds = winOdds self.drawOdds = drawOdds self.lossOdds = lossOdds winput = 100 / self.winOdds drawput = 100 / self.drawOdds lossput = 100 / self.lossOdds totalput = winput + drawput + lossput self.winper = winput / totalput self.drawper = drawput / totalput self.lossper = lossput / totalput def printf(self, win=None, draw=None, loss=None): if win != None: total = win / self.winper my_draw_put = total * self.drawper my_loss_put = total * self.lossper print("胜压:{}\n平压:{}\n负压:{}\n总投入:{}\n预期收入:{}\n".format(win, my_draw_put, my_loss_put, total,win*self.winOdds)) elif draw != None: total = draw / self.drawper my_win_put = total * self.winper my_loss_put = total * self.lossper print("胜压:{}\n平压:{}\n负压:{}\n总投入:{}\n预期收入:{}\n".format(my_win_put, draw, my_loss_put, total,draw*self.drawOdds)) elif loss != None: total = loss / self.lossper my_win_put = total * self.winper my_draw_put = total * self.drawper print("胜压:{}\n平压:{}\n负压:{}\n总投入:{}\n预期收入:{}\n".format(my_win_put, draw, loss, total,loss*self.lossOdds)) def per(self): print("赢的概率{}\n平的概率draw{}\n负的概率loss{}".format(self.winper, self.drawper, self.lossper)) def expincome(self,exp): win_put = exp / self.winOdds draw_put = exp / self.drawOdds loss_put = exp / self.lossOdds # total = win_put + draw_put + loss_put return win_put,draw_put,loss_put # 想算算威廉希尔和竞彩官方有没有稳赢的组合,结果没有。 def sy(a,b): exp = 100 t = a.expincome(exp) w = b.expincome(exp) z = tuple(zip(t,w)) for i in z[0]: for j in z[1]: for p in z[2]: input = i + j + p if input < exp: print("______稳赢组合______:",i,j,p) if __name__ == '__main__': print("尼日利亚VS冰岛") ni_vs_bing = fiFa(2.50, 3.05, 2.32) ni_vs_bing_w = fiFa(2.80, 3.10, 2.80) ni_vs_bing.printf(draw=100) sy(ni_vs_bing,ni_vs_bing_w) print("巴西VS哥斯达") ba_vs_ge = fiFa(1.08,6.10,14.50) ba_vs_ge_w = fiFa(1.22,6.50,15.00) ba_vs_ge.printf(draw=100) sy(ba_vs_ge,ba_vs_ge_w) print("塞尔维亚VS瑞士") sai_vs_rui = fiFa(2.52,2.90,2.40) sai_vs_rui_w = fiFa(2.80,2.90,2.90) sai_vs_rui.printf(draw=100) sy(sai_vs_rui,sai_vs_rui_w)
结果: