python求打几场比赛-用python实行羽毛球比赛规则。
羽毛球比赛规则:
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实行羽毛球比赛规则。相关推荐
- python求5的阶乘_用python分享5的阶乘 (咋办)用python计算阶乘
(急)用python计算阶乘 小编需要用python列出一个阶乘的表. 小编不太清楚python的阶乘公式 以阶乘reduce为逐次操作list里的每项,接收的参数为 2个,最后返回的为一个结果 &g ...
- python编程竞赛规则_用python实行羽毛球比赛规则。
羽毛球比赛规则: 1.21分制,三局两胜为佳 2.每球得分制 3.每回合中取胜的一方的一分 4.双方均为20分时,领先对方2分一方获胜 5.双方均为29分时,先到达30分一方获胜 6.一局比赛中获胜方 ...
- python求向量函数的雅可比矩阵_在python Numpy中求向量和矩阵的范数实例
np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=np.linalg.norm(x, ord=None, ...
- python 求均值_数据分析:寻找Python最优计算性能
1.场景描述 在数据统计分析过程中,求累计值(总和)是最常用的统计指标之一,市面上的各种流行数据库均支持的查询方式基本如下: select sum(c) from table_name; 当数据量在小 ...
- python 求函数最大值_遗传算法与Python图解
import matplotlib.pyplot as plt import numpy as np import random import pandas as pd 遗传算法求函数最值 遗传算法的 ...
- python求均值标准差不用numpy_【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印...
python作为数据分析的利器,求极差.平均数.中位数.众数与方差是很常用的,然而,在python进行统计往往要使用外部的python库numpy,这个库不难装,然而,如果单纯只是求极差.平均数.中位 ...
- python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵
考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...
- python求123逆序数_应用Python来计算排列中的逆序数个数
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.一个排列中所有逆序总数叫做这个排列的逆序数.也就是说,对于 ...
- python求成绩平均值_(生活)使用Python计算学生成绩平均值
今天发现了一个比较复杂的成绩文本,个人并不想手动去除其中的空格以及其他数据,于是就使用了python中的正则表达式来计算 下面放的是这次的成绩文本,文本文件名我命名为a.txt 433 91 89 4 ...
最新文章
- 使用pipeline的函数
- Java之StringBuffer类
- 知识点篇:7)企业标准体系制定要求
- 暴风影音硬件加速播放高清影片
- python批量音频转格式_ffmpeg 转为16K PCM格式,python生成批量转码脚本
- unity3d怎么让模型动起来_Unity3d笔记——利用Animator使模型动起来
- 计算机毕业设计ssm基于vue的健康餐饮管理系统的设计与实现
- 毕业论文中的调查问卷怎样设计以及分析?
- Hadoop 中 FileSplit (文件分割器)的简单使用
- 在excel中批量生成条形码的操作方法?
- ubuntu20.04安装并运行ORB_SLAM3(一路顺风版)
- 【前端】你真的理解JavaScript中的变量和数据类型吗
- 综合案例-快报模块列表制作
- QWebView到QWebEngineView
- oracle load 用法,Oracle中SQL*LOADER使用方法总结
- 胡喜:从 BASIC 到 basic ,蚂蚁金服技术要解决两个基本的计算问题
- LVGL在线字体转换教程
- 【案例】avi文件恢复
- javaweb失物招领网站源码
- mui分页控件数据绑定封装