ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

乒乓球比赛预测

2021-11-06 11:01:03  阅读:186  来源: 互联网

标签:12 预测 self 乒乓球 break 比赛 dfA slA dfB


 1 from random import random
 2 
 3 class bisai(object):
 4     def __init__(self, nlA, nlB, n):
 5         self.nlA = nlA
 6         self.nlB = nlB
 7         self.n = n
 8         self.dfA = 0
 9         self.dfB = 0
10         self.slA = 0
11         self.slB = 0
12         self.scA = 0
13         self.scB = 0
14     def bsai(self):
15         qquan = 'A'
16         for i in range(self.n):
17             #重置比分
18             self.slA = 0
19             self.slB = 0
20             while not self.slA==4 or self.slB==4:
21                 #重置得分
22                 self.dfA = 0
23                 self.dfB = 0
24                 while not self.dfA==11 or self.dfB==11:
25                     if qquan == 'A':
26                         if random()<self.nlA:
27                             self.dfA += 1
28                         else:
29                             qquan = 'B'
30                     else:
31                         if random()<self.nlB:
32                             self.dfB += 1
33                         else:
34                             qquan = 'A'
35 
36                     #先到11分获胜,如果出现10平先多积两分者获胜
37                     if self.dfA >= 11 and self.dfB < 10:
38                         self.slA += 1
39                         break
40                     elif self.dfB >= 11 and self.dfA < 10:
41                         self.slB += 1
42                         break
43                     #出现10平先多积两分者获胜
44                     elif self.dfA == 10 and self.dfB == 10:
45                         while not self.dfA==12 or self.dfB==12:
46                             if qquan == 'A':
47                                 if random()<self.nlA:
48                                     self.dfA += 1
49                                 else:
50                                     qquan = 'B'
51                             else:
52                                 if random()<self.nlB:
53                                     self.dfB += 1
54                                 else:
55                                     qquan = 'A'
56                             if self.dfA >= 12 and self.dfB < 12:
57                                 break
58                             elif self.dfB >= 12 and self.dfA < 12:
59                                 break
60                     #先积两分者获胜
61                     if self.dfA >= 12 and self.dfB < 12:
62                         self.slA += 1
63                         break
64                     elif self.dfB >= 12 and self.dfA < 12:
65                         self.slB += 1
66                         break
67                 #七局四胜
68                 if self.slA >= 4 and self.slB < 4:
69                     self.scA += 1
70                     break
71                 elif self.slB >= 4 and self.slA<4:
72                     self.scB += 1
73                     break
74                 
75 def main():
76     A = eval(input())
77     B = eval(input())
78     n = int(input())
79     b = bisai(A, B, n)
80     b.bsai()
81     print("裁判员:2020310143102  董婉儿")
82     print("A赢的场次",b.scA,"B赢的场次",b.scB)
83     print("A胜率{:.2f}%".format(b.scA/b.n*100))
84     print("B胜率{:.2f}%".format(b.scB/b.n*100))
85 if __name__ == '__main__':
86     main()

 

 

 

 

 

标签:12,预测,self,乒乓球,break,比赛,dfA,slA,dfB
来源: https://www.cnblogs.com/dwexjlg/p/15516173.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有