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 ...
最新文章
- Android UI体验之全屏沉浸式透明状态栏效果
- Java笔记14:泛型初探
- 去掉一个linux的ip,linux – iptables删除除一个IP之外的所有传入ICMP请求
- 多线程处理list_数组两元素的最大差:从暴力到多线程
- VIVO X1手机通过USB连接电脑访问tomcat
- 《盘点那些秀你一脸的秒天秒地算法》(1)
- 嵌入式电路设计(最小系统)
- EXTJS学习系列提高篇:第八篇(转载)作者殷良胜,制作树形菜单之二
- 计算机程序领域专利撰写,干货 | 计算机软件专利撰写模板
- 二极管整流和同步整流区别
- 基于arduino的WiFi无线传输
- Java生成csv文件设置文本格式
- Linux ssh 文件 authorized_keys 和 known_hosts
- FPGA电源设计方案
- 使用HTML语言和CSS开发商业站点
- ant如何形成时间轴和图库_安利会员如何办理?办理安利会员的好处是什么?
- 游戏设计与开发_Unity游戏开发——设计模式概述
- VB 共享软件防破解设计技术初探(三)
- linux替换文件中内容
- DSP数据手册和技术参考手册的使用
热门文章
- java 挡泥板,Canyon推出Grail AL铝合金Gravel Bike
- 删除所有奇数顺序表c语言,如何删除列表中的所有奇数序数项?
- Redis实现在线用户列表(按登录时间排序、可查询、踢人)
- c调用python第三方包_cbillington_Python包维护者_第三方库作者_PyPI项目模块Package - Python中文网...
- C# 接口和抽象类的区别和使用场景
- 一个简单的ADFR的re-docking教程
- 极验滑块验证码破解与研究(二):缺口图片还原
- 《JSP程序设计》手机销售网后台设计
- GB28181国标2016版本协议文档(正式版)解读(三)
- 【面试】JAVA三年经验面试题