zoukankan      html  css  js  c++  java
  • 球队预测

     
    from random import random
    def printInfo():
        print("这个程序模拟两个选手A和B的羽毛球竞技比赛")
        print("程序需要两个选手的能力值0-1")
        print("规则:三局两胜--21分制")
        print("作者:程序小白007--08")
    def getInput():
        a = eval(input("请输入选手A的能力值(0-1):"))
        b = eval(input("请输入选手B的能力值(0-1):"))
        m=eval(input("比赛的局数:"))
        n = eval(input("模拟比赛的场次:"))
        return a,b,m,n

    def printSummary(winsA,winsB):
        n = winsA + winsB
        print("竞技分析开始,共模拟{}场比赛".format(n))
        print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))
        print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))

    def simNGames(m,n,probA,probB):
        winsA,winsB = 0,0
        wa,wb=0,0
        for i in range(n):
            for i in range(m):
                scoreA,scoreB = simOneGame(probA,probB)
                if scoreA > scoreB:
                     wa += 1
                else:
                    wb += 1
                if wa==2:
                    winsA+=1
                    wa,wb=0,0
                    break
                if wb==2:
                    winsB+=1
                    wa,wb=0,0
                    break

        return winsA,winsB

    def simOneGame(probA,probB):
        scoreA,scoreB = 0,0
        serving = "A"
        while not gameOver(scoreA,scoreB):
            if serving == "A":
                if random() < probA:
                    scoreA += 1
                else:
                    serving = "B"
            else:
                if random() < probB:
                    scoreB += 1
                else:
                    serving = "A"
        return scoreA,scoreB
    def gameOver(a,b):
        if(a>=20 or b>=20):
            if(abs(a-b)==2 and a<=29 and b<=29):
                return True
            else:
                return a==30 or b==30
        else:
            return False
    def main():
        printInfo()
        probA,probB,m,n = getInput()
        winsA,winsB = simNGames(m,n,probA,probB)
        printSummary(winsA,winsB)
    main()
     
     
  • 相关阅读:
    codeforces C. Fixing Typos 解题报告
    codeforces B. The Fibonacci Segment 解题报告
    codeforces B. Color the Fence 解题报告
    codeforces B. Petya and Staircases 解题报告
    codeforces A. Sereja and Bottles 解题报告
    codeforces B. Levko and Permutation 解题报告
    codeforces B.Fence 解题报告
    tmp
    API 设计 POSIX File API
    分布式跟踪的一个流行标准是OpenTracing API,该标准的一个流行实现是Jaeger项目。
  • 原文地址:https://www.cnblogs.com/study007/p/13179041.html
Copyright © 2011-2022 走看看