python模拟足球比赛_2019-05-12 Python之模拟体育竞赛
from random import *
#输出介绍信息
defprintIntro():print("这个程序模拟两个选手A和B的某种竞技比赛")print("程序运行需要A和B的能力值(以0到1之间的小数表示)")#输入,获取能力值和比赛场数
defgetInputs():#获取数据
a= 0.45b= 0.5n= 5
'''a = eval(input("请输入a选手的能力值:"))
b = eval(input("请输入b选手的能力值:"))
n = eval(input("模拟比赛场次:"))'''
returna,b,n#比赛全过程
defsimNGames(n,probA,probB):print("竞技分析开始,共模拟{}场比赛".format(n))
winsA, winsB=0,0
m=eval(input("1.排球,2乒乓球,3足球,4篮球,请输入选择的规则:"))for i in range(1, int(n/2)+2): #n为比赛场数
scoreA, scoreB=simOneGame(int(n/2)+1, probA, probB, m) #单场比赛过程
print("第{}场比赛得分情况,A:{},B:{}".format(i, scoreA, scoreB))if scoreA >scoreB:
winsA+= 1
else:
winsB+= 1
returnwinsA, winsB#单场比赛过程,返回比分
defsimOneGame(i, probA, probB, m):global k #记录局数
k += 1
if m == 1:
scoreA, scoreB=Volleyball_game(k, i, probA, probB)elif m == 2:
scoreA, scoreB=Table_Tennis_game(k, i, probA, probB)elif m == 3:
scoreA, scoreB=Football_game(i, probA, probB)elif m == 4:
scoreA, scoreB=Basketball_game(i, probA, probB)returnscoreA, scoreB#输出获胜场数和比例
defprintSummary(winsA, winsB):
n= winsA +winsBprint("选手A获胜{}场比赛,占比例{:0.2%}".format(winsA, winsA/n))print("选手B获胜{}场比赛,占比例{:0.2%}".format(winsB, winsB/n))#排球比赛单局
defVolleyball_game(k, i, probA, probB):
scoreA, scoreB=0,0
serving= 'A'
if k!=i: #不是最终局
while not ((scoreA == 25 and scoreA >= scoreB-2) or (scoreB == 25 and scoreB >= scoreA-2)) : #如果未达到单场结束条件
if serving == 'A':if random()
scoreA+= 1
else:
serving='B'
else:if random()
scoreB+= 1
else:
serving='A'
else: #最终局
while not ((scoreA == 15 and scoreA >= scoreB-2) or (scoreB == 15 and scoreB >= scoreA-2)):if serving == 'A':if random()
scoreA+= 1
else:
serving='B'
else:if random()
scoreB+= 1
else:
serving='A'
returnscoreA, scoreB#足球比赛一场
defFootball_game(i, probA, probB):
scoreA, scoreB=0, 0
a, b= randint(int(probA*7), int(probA*14)), randint(int(probB*7), int(probB*14)) #根据能力值随机出进攻次数
for i inrange(int(a)):if random() - 0.1 >probA:
scoreA+= 1
for i inrange(int(b)):if random() - 0.1 >probB:
scoreB+= 1
while scoreA == scoreB : #点球大战
if random() >probA:
scoreA+= 1
if random() >scoreB :
scoreB+= 1
returnscoreA, scoreB#乒乓球比赛单局
defTable_Tennis_game(k, i, probA, probB):
scoreA, scoreB=0, 0
serving= 'A'
while not ((scoreA == 11 and scoreA >= scoreB-2) or (scoreB == 11 and scoreB >= scoreA-2)): #如果未达到单场结束条件
if serving == 'A':if random()
scoreA+= 1
else:
serving= 'B'
else:if random()
scoreB+= 1
else:
serving= 'A'
returnscoreA, scoreB#篮球比赛一场
defBasketball_game(k, i, probA, probB):
scoreA, scoreB=0, 0
a, b= randint(int(probA * 150), int(probA * 170)), randint(int(probB * 150), int(probB * 170)) #根据能力值随机出进攻次数
for i inrange(int(a)):if random() >probA:if random() > 0.62:
scoreA+= 3
else:
scoreA+= 2
for i inrange(int(b)):if random() >probB:if random() > 0.62:
scoreB+= 3
else:
scoreB+= 2
while scoreA == scoreB: #加时赛
a, b = randint(int(probA * 10), int(probA * 15)), randint(int(probB * 10), int(probB * 15)) #根据能力值随机出进攻次数
for i inrange(int(a)):if random() >probA:if random() > 0.62:
scoreA+= 3
else:
scoreA+= 2
for i inrange(int(b)):if random() >probB:if random() > 0.62:
scoreB+= 3
else:
scoreB+= 2
returnscoreA, scoreBdefmain():
printIntro()
probA, probB, n=getInputs()
winsA, winsB=simNGames(n, probA, probB)
printSummary(winsA, winsB)
k=0
main()
python模拟足球比赛_2019-05-12 Python之模拟体育竞赛相关推荐
- python模拟足球比赛_如何使用python从livescores获取足球比赛结果
大家好,我有这个项目正在使用python3.4我想刮livescore.com网站对于足球成绩(结果),例如获得当天的所有分数(英格兰2-2挪威,法国2-1意大利)等等,我正在用Python3.4,W ...
- python模拟足球比赛_python初体验 —— 模拟体育竞技
python初体验 -->>> 模拟体育竞技 一.排球训练营 1. 简介: 模拟不同的两个队伍进行排球的模拟比赛. 2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ...
- python预测足球比赛_机器学习算法预测足球赛事的模型比较(一)
本文是作者前一段时间关注足球赛事时做的一点分析,内容涉及基于足球数据进行描述性统计分析.基于机器学习建模与传统的泊松模型建模三大部分,由于文章较长,将分两部分进行展现. 第一部分为前言与述性分析部分1 ...
- python工程师面试宝典_2019年,Python工程师必考的6个面试题,Python面试题No5
第1题:Python里面如何实现tuple和list的转换? 函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变 list转为tuple: ...
- python工程师笔试题_2019年,Python工程师必考的6个面试题,Python面试题No5
函数 tuple(seq) 可以把所有 可迭代的(iterable)序列 转换成一个 tuple , 元素不变,排序也不变 list转为tuple: temp_list = [1,2,3,4,5] 复 ...
- python爬虫怎么挣钱_2019如何学Python?这里有你需要的答案
编辑 | Jane 出品 | Python大本营(公众号id:pythonnews) 根据 2018 年 Python 开发者大调查,Python 3 的渗透率已经快速增长至 84%,越来越多的开发者 ...
- python足球分析系统_NAO足球/高尔夫比赛视觉系统设计(python初级版)
初级版的内容主要分为两部分,第一部分是如何利用NAO的视觉传感器,即上下摄像头,来获取图片及如何利用opencv显示获得的图片.第二部分是如何利用opencv里面的视觉算法从NAO获取的图片中找到所需 ...
- 【Mo 人工智能技术博客】采用 Python 机器学习预测足球比赛结果
采用 Python 机器学习预测足球比赛结果 足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻.比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题.甚 ...
- python模型预测足球_采用 Python 机器学习预测足球比赛结果!买谁赢就谁赢!
采用 Python 机器学习预测足球比赛结果 足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻.比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题.甚 ...
最新文章
- 黄聪:分享 SQL Server 2005 分区实现教程
- 做301定向跳转对网站优化有什么帮助?
- iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)
- 面试造飞机系列:volatile面试的连环追击,你还好吗?
- @capire/common is not needed at runtime at all
- Javascript 获取字符串字节数的多种方法
- JavaScript 经典设计模式
- Python+django网页设计入门(3):使用SQLite数据库
- 松下a6伺服驱动连接光栅尺_闭环伺服系统的数控贴条为什么要安装光栅尺?
- 【Android Studio安装部署系列】十九、Android studio使用SVN
- 达而稳 驱动 fl2000dx_Intel-AMD核显驱动没人管:Win10无法升级,不要撞车
- mysql 主从数据库配置_8、MySQL主从数据库配置
- SolidWorks2020无法获得下列许可SOLIDWORKS Standard.Server节点已经关闭或是没有响应。(-96,7,11003)
- 宝塔远程桌面助手linux密码不知道,宝塔远程桌面助手的教程
- 无盘服务器接几根网线,设置无线路由器需要几根网线_安装路由器需要几根网线?-192路由网...
- 10.java基础----继承、抽象类- 编程
- macOS 安装 brew步骤
- 夜神模拟器 开发 重新连接
- 使用Proteus8进行8086实验仿真,解决找不到source的问题
- JAVA——基于控制台的购书系统