码迷,mamicode.com
首页 > 其他好文 > 详细

预测球队比赛成绩

时间:2020-05-23 16:44:04      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:bsp   format   运行   games   rand   比赛   form   header   def   

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()

模拟结果

技术图片

 

预测球队比赛成绩

标签:bsp   format   运行   games   rand   比赛   form   header   def   

原文地址:https://www.cnblogs.com/jxt666/p/12942875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!