模拟体育竞技分析
采用乒乓球比赛规则
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()


浙公网安备 33010602011771号