乒乓球比赛模拟

Posted 1234f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了乒乓球比赛模拟相关的知识,希望对你有一定的参考价值。

 1 #羽毛球比赛规则
 2 from random import random
 3 def getInputs():
 4     a = eval(input("请输入选手A的能力值(0-1): "))
 5     b = eval(input("请输入选手B的能力值(0-1): "))
 6     n = 3
 7     return a, b, n
 8 def simNGames(n, probA, probB):
 9     winsA, winsB = 0, 0
10     for i in range(n):
11         scoreA, scoreB = simOneGame(probA, probB)
12         if scoreA > scoreB:
13             winsA += 1
14         else:
15             winsB += 1
16     return winsA, winsB
17 def gameOver(a,b):
18     flag = True
19     if (a==21 and b<20) or (b==21 and a<20):
20         flag = False
21     elif (a>21 and b>21):
22         if (a==29 and b==30) or (a==30 and b==29):
23             flag = False
24         elif abs(a-b)==2:
25             flag = False
26     elif(a==21 or b==21):
27         flag = False
28     return flag
29 def simOneGame(probA, probB):
30     scoreA, scoreB = 0, 0
31     serving = "A"
32     while gameOver(scoreA, scoreB):
33         if serving == "A":
34             if random() < probA:
35                 scoreA += 1
36             else:
37                 serving="B"
38         else:
39             if random() < probB:
40                 scoreB += 1
41             else:
42                 serving="A"
43     return scoreA, scoreB
44 def printSummary(winsA, winsB):
45     if winsA>winsB:
46         print("选手A赢{}场,选手B赢{}场,选手A获胜".format(winsA,winsB))
47     else:
48         print("选手A赢{}场,选手B赢{}场,选手B获胜".format(winsA,winsB))
49 def main():
50     probA, probB, n = getInputs()
51     winsA, winsB = simNGames(n, probA, probB)
52     printSummary(winsA, winsB)
53 main()

 

以上是关于乒乓球比赛模拟的主要内容,如果未能解决你的问题,请参考以下文章

乒乓球比赛模拟

乒乓球比赛规则模拟体育分析

预测乒乓球比赛成绩

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。(代码片段

乒乓规则分析

体育竞技模拟比赛