世界杯买球算法

今年世界杯不太平,大家买球的输了不少吧,反正我一直在输,研究了下赔率和返还率,写了个算法,胜平负里面输入期中一个买入金额,输出其他两个金额。

返还率 = 预期收入 / 总投入

想算算威廉希尔和竞彩官方有没有稳赢的组合,结果没有。

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)
    

结果:


猜你喜欢

转载自blog.csdn.net/sily75/article/details/80770628