模拟体育竞技分析

采用乒乓球比赛规则

 1 def gameOver(a,b):
 2     if a>=10 and b>=10:
 3         if abs(a-b)==2:
 4             return True
 5     if a<10 or b<10:
 6         if a==11 or b==11:
 7             return True
 8     else:
 9         return False
10 
11 def simOneGame(probA, probB):
12     scoreA, scoreB = 0, 0
13     serving = "A"
14     while not gameOver(scoreA, scoreB):
15         if serving == "A":
16             if random() < probA:
17                 scoreA += 1
18             else:
19                 scoreB +=1
20                 serving="B"
21         else:
22             if random() < probB:
23                 scoreB += 1
24             else:
25                 scoreA += 1
26                 serving="A"
27     return scoreA, scoreB
28 
29 def printSummary(winsA, winsB):
30     n = winsA + winsB
31     print("竞技分析开始,共模拟{}场比赛".format(n))
32     print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
33     print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
34 
35 def main():
36     printIntro()
37     probA, probB, n = getInputs()
38     WinsA, WinsB = simNGames(n, probA, probB)
39     printSummary(WinsA, WinsB)
40 main()

 

 

posted @ 2021-12-11 20:42  熊能能  阅读(38)  评论(0)    收藏  举报