预测球队比赛成绩

Posted jxt666

tags:

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

1. 21 分制,3局2胜为佳
2. 每球得分制
3. 每回合中,取胜的一方加 1 分
4. 当双方均为 20 分时,领先对方 2 分的一方赢得该局比赛
5. 当双方均为 29 分时,先取得 30 分的一方赢得该局比赛
6. 一局比赛的获胜方在下一局率先发球

程序:

 1 from random import random
 2 def printIntro():
 3     print("这个程序模拟两个选手A和B的羽毛球比赛(学号3017)")
 4     print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
 5 def getInputs():
 6     a = eval(input("请输入选手A的能力值(0-1): "))
 7     b = eval(input("请输入选手B的能力值(0-1): "))
 8     n = eval(input("模拟比赛的场次: "))
 9     return a, b, n
10 def simNGames(n, probA, probB):
11     winsA, winsB = 0, 0
12     for i in range(n):
13         scoreA, scoreB = simOneGame(probA, probB)
14         if scoreA > scoreB:
15             winsA += 1
16         else:
17             winsB += 1
18     return winsA, winsB
19 def gameOver(a,b):
20     if(a>=20 or b>=20):
21         if(abs(a-b)==2 and a<=29 and b<=29):
22             return True
23         else:
24             return a==30 or b==30
25     else:
26         return False
27 def simOneGame(probA, probB):
28     scoreA, scoreB = 0, 0
29     serving = "A"
30     while not gameOver(scoreA, scoreB):
31         if serving == "A":
32             if random() < probA:
33                 scoreA += 1
34             else:
35                 serving="B"
36         else:
37             if random() < probB:
38                 scoreB += 1
39             else:
40                 serving="A"
41     return scoreA, scoreB
42 def printSummary(winsA, winsB):
43     n = winsA + winsB
44     print("竞技分析开始,共模拟{}场比赛".format(n))
45     print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
46     print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
47 def main():
48     printIntro()
49     probA, probB, n = getInputs()
50     winsA, winsB = simNGames(n, probA, probB)
51     printSummary(winsA, winsB)
52 main()

模拟结果

技术图片

 

以上是关于预测球队比赛成绩的主要内容,如果未能解决你的问题,请参考以下文章

预测球队比赛成绩

预测球队比赛成绩

预测球队比赛成绩

球队比赛预测

预测球队比赛成绩

听说你赌球?Python来预测哪只球队能夺冠!别外传哦!小赌怡情!