羽毛球比赛规则:

1、21分制,三局两胜为佳

2、每球得分制

3、每回合中取胜的一方的一分

4、双方均为20分时,领先对方2分一方获胜

5、双方均为29分时,先到达30分一方获胜

6、一局比赛中获胜方在下一局率先开球

代码如下:

from random import random

print("学号尾数08")

def printIntro():

print("这个程序模拟两个选手A和B的羽毛球竞技比赛")

print("程序运行需要A和B的能力值(以0到1之间的小数表示)")

def getInputs():

a = eval(input("请输入选手A的能力值(0-1): "))

b = eval(input("请输入选手B的能力值(0-1): "))

n = eval(input("模拟比赛的场次: "))

m = eval(input("模拟次数:"))

return a, b, n, m

def simNGames(n, probA, probB):

winsA, winsB = 0, 0

scoreA_ls=[]

scoreB_ls=[]

for i in range(n):

scoreA, scoreB = simOneGame(probA, probB)

scoreA_ls.append(scoreA)

scoreB_ls.append(scoreB)

if scoreA > scoreB:

winsA += 1

else:

winsB += 1

return winsA, winsB,scoreA_ls,scoreB_ls

def gameOver(a,b):

if(a>=20 or b>=20):

if(abs(a-b)==2 and a<=29 and b<=29):

return True

else:

return a==30 or b==30

else:

return False

def simOneGame(probA, probB):

scoreA, scoreB = 0, 0

serving = "A"

while not gameOver(scoreA, scoreB):

if serving == "A":

if random() < probA:

scoreA += 1

else:

serving="B"

else:

if random() < probB:

scoreB += 1

else:

serving="A"

return scoreA, scoreB

def printSummary(winsA, winsB,m,scoreA_ls,scoreB_ls):

n = winsA + winsB

print("模型模拟次数{}".format(m))

print("竞技分析开始,共模拟{}场比赛".format(n))

print("A选手各场次得分比分:")

print(scoreA_ls)

print("B选手各场次得分比分:")

print(scoreB_ls)

print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))

print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))

def main():

printIntro()

probA, probB, n, m= getInputs()

for i in range(m):

winsA, winsB,scoreA_ls,scoreB_ls = simNGames(n, probA, probB)

printSummary(winsA, winsB,m,scoreA_ls,scoreB_ls)

main()

运行结果如下:

学号尾数08

这个程序模拟两个选手A和B的羽毛球竞技比赛

程序运行需要A和B的能力值(以0到1之间的小数表示)

请输入选手A的能力值(0-1): 0.4

请输入选手B的能力值(0-1): 0.3

模拟比赛的场次: 6

模拟次数:8

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[30, 20, 30, 30, 30, 30]

B选手各场次得分比分:

[15, 18, 11, 11, 7, 18]

选手A获胜6场比赛,占比100.0%

选手B获胜0场比赛,占比0.0%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[21, 30, 30, 30, 21, 30]

B选手各场次得分比分:

[19, 23, 19, 13, 23, 12]

选手A获胜5场比赛,占比83.3%

选手B获胜1场比赛,占比16.7%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[18, 30, 30, 30, 30, 22]

B选手各场次得分比分:

[20, 20, 15, 18, 14, 20]

选手A获胜5场比赛,占比83.3%

选手B获胜1场比赛,占比16.7%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[30, 30, 30, 30, 30, 30]

B选手各场次得分比分:

[7, 10, 18, 8, 17, 20]

选手A获胜6场比赛,占比100.0%

选手B获胜0场比赛,占比0.0%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[20, 21, 21, 23, 21, 30]

B选手各场次得分比分:

[18, 19, 19, 25, 19, 23]

选手A获胜5场比赛,占比83.3%

选手B获胜1场比赛,占比16.7%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[30, 30, 30, 30, 30, 26]

B选手各场次得分比分:

[12, 20, 18, 4, 13, 28]

选手A获胜5场比赛,占比83.3%

选手B获胜1场比赛,占比16.7%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[18, 30, 30, 18, 30, 30]

B选手各场次得分比分:

[20, 21, 15, 20, 18, 19]

选手A获胜4场比赛,占比66.7%

选手B获胜2场比赛,占比33.3%

模型模拟次数8

竞技分析开始,共模拟6场比赛

A选手各场次得分比分:

[30, 30, 30, 20, 28, 30]

B选手各场次得分比分:

[15, 13, 14, 18, 26, 21]

选手A获胜6场比赛,占比100.0%

选手B获胜0场比赛,占比0.0%

python求打几场比赛-用python实行羽毛球比赛规则。相关推荐

  1. python求5的阶乘_用python分享5的阶乘 (咋办)用python计算阶乘

    (急)用python计算阶乘 小编需要用python列出一个阶乘的表. 小编不太清楚python的阶乘公式 以阶乘reduce为逐次操作list里的每项,接收的参数为 2个,最后返回的为一个结果 &g ...

  2. python编程竞赛规则_用python实行羽毛球比赛规则。

    羽毛球比赛规则: 1.21分制,三局两胜为佳 2.每球得分制 3.每回合中取胜的一方的一分 4.双方均为20分时,领先对方2分一方获胜 5.双方均为29分时,先到达30分一方获胜 6.一局比赛中获胜方 ...

  3. python求向量函数的雅可比矩阵_在python Numpy中求向量和矩阵的范数实例

    np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=np.linalg.norm(x, ord=None, ...

  4. python 求均值_数据分析:寻找Python最优计算性能

    1.场景描述 在数据统计分析过程中,求累计值(总和)是最常用的统计指标之一,市面上的各种流行数据库均支持的查询方式基本如下: select sum(c) from table_name; 当数据量在小 ...

  5. python 求函数最大值_遗传算法与Python图解

    import matplotlib.pyplot as plt import numpy as np import random import pandas as pd 遗传算法求函数最值 遗传算法的 ...

  6. python求均值标准差不用numpy_【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印...

    python作为数据分析的利器,求极差.平均数.中位数.众数与方差是很常用的,然而,在python进行统计往往要使用外部的python库numpy,这个库不难装,然而,如果单纯只是求极差.平均数.中位 ...

  7. python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵

    考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...

  8. python求123逆序数_应用Python来计算排列中的逆序数个数

    在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.一个排列中所有逆序总数叫做这个排列的逆序数.也就是说,对于 ...

  9. python求成绩平均值_(生活)使用Python计算学生成绩平均值

    今天发现了一个比较复杂的成绩文本,个人并不想手动去除其中的空格以及其他数据,于是就使用了python中的正则表达式来计算 下面放的是这次的成绩文本,文本文件名我命名为a.txt 433 91 89 4 ...

最新文章

  1. 使用pipeline的函数
  2. Java之StringBuffer类
  3. 知识点篇:7)企业标准体系制定要求
  4. 暴风影音硬件加速播放高清影片
  5. python批量音频转格式_ffmpeg 转为16K PCM格式,python生成批量转码脚本
  6. unity3d怎么让模型动起来_Unity3d笔记——利用Animator使模型动起来
  7. 计算机毕业设计ssm基于vue的健康餐饮管理系统的设计与实现
  8. 毕业论文中的调查问卷怎样设计以及分析?
  9. Hadoop 中 FileSplit (文件分割器)的简单使用
  10. 在excel中批量生成条形码的操作方法?
  11. ubuntu20.04安装并运行ORB_SLAM3(一路顺风版)
  12. 【前端】你真的理解JavaScript中的变量和数据类型吗
  13. 综合案例-快报模块列表制作
  14. QWebView到QWebEngineView
  15. oracle load 用法,Oracle中SQL*LOADER使用方法总结
  16. 胡喜:从 BASIC 到 basic ,蚂蚁金服技术要解决两个基本的计算问题
  17. LVGL在线字体转换教程
  18. 【案例】avi文件恢复
  19. javaweb失物招领网站源码
  20. mui分页控件数据绑定封装

热门文章

  1. python-基于yagmail库开发自动邮件发送程序
  2. 微软欲模仿“微信”,打造一款超级 App?
  3. 数据库中候选键的确定
  4. 【愚公系列】2022年02月 Django商城项目 34-订单支付功能实现(支付宝)
  5. 重磅!RTK差分共享猫APP即将开源!!
  6. pytorch自动下载的权重保存位置
  7. 电脑桌面便签提醒事项到期后怎么清除时间设置?
  8. APS生产排程的依据和原则
  9. 《高级软件测试管理》学习笔记——人员技能 团队构成
  10. js获取当前月、上一月和下一月