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人工智能课程_从零开始学人工智能(12)--Python · 决策树(零)· 简介...
原标题:从零开始学人工智能(12)--Python · 决策树(零)· 简介 感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直 ...
- python简单的画图代码爱心,怎么用python代码画心
大家好,本文将围绕用python画一个心形怎么编程展开说明,python简单的画图代码爱心是一个很多人都想弄明白的事情,想搞清楚用python画爱心的程序代码需要先了解以下几个事情. 1.python ...
- python 简单实例训练(1~10)-从零开始的Python学习 -- 简单的练习题
从零开始的Python学习 – 简单的练习题 目录: 从零开始的Python学习 -- 简单的练习题 前言: 顺序结构 A+B problem 苹果采购 分支结构 数的性质 闰年判断 Apple 循环 ...
- python简单可视化聊天界面_如何用Python制作可视化输入界面
继续研究Python的应用,我们在有些程序中需要输入一些参数,可由几种方式实现 1.直接写在程序里,适合编程使用 2.使用input()函数,运行程序时输入 3.做成可视化界面,然后让程序获得 今天主 ...
- python简单代码input-【python系统学习05】input函数——实现人机交互
input函数 目录 input用途 实现人机交互: 1.你提出问题打印在屏幕上, 2.运行程序的人再输入回答. 3.按下回车,程序得到收集来的回答 4.之后,逻辑向下继续运行. 我们写的程可以实现根 ...
- python简单代码hello-python教程——【1 hello, python】
初识python python是一种面向对象的高级编程语言,由Guido van Rossum在1989年圣诞节期间编写而成. 作为众多编程语言之一,python有着诸如完善的基础代码库和第三方库,& ...
- python简单数据类型变量_(八)python的简单数据类型和变量
什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...
- 4、python简单线性回归代码案例(完整)_4、python简单线性回归代码案例(完整)...
第一.回归分析的步骤 01 根据预测目标,确定自变量和因变量 02 绘制散点图,确定回归模型类型 03 估计模型参数,建立回归模型 04 对回归模型进行检验 回归方程的精度就是用来表示实际观测点和回归 ...
- 30天python从入门到精通_2019最新《Python从入门到精通之30天快速学Python教程 》
课程目录 python入门教程-1-Python编程语言历史及特性.mkv3 Z8 B6 K4 J7 X; K, D python入门教程-2-Python编程语言初接触.mkv ' Z; @3 X* ...
- python写抢票软件_2019最新某python编写抢票软件实战教程
问题:在学习Python爬虫一开始,利用python自带urllib模块请求一个网页时,响应的content中中文为16进制,如何转换为中文. 环境:WIN10+Python3.6 代码: #~ co ...
最新文章
- Mocha BSM基础架构管理——灵活的网络拓扑展现
- python获取excel某一列所有值-Python读取Excel一列并计算所有对象出现次数的方法...
- 【最简单的例子】Editor.md的初步使用
- 2019年华南理工大学程序设计竞赛(春季赛)
- oracle 数据库的数据事务的相关概念
- CRM客户主数据UI上有哪些字段可以触发partner determination
- 邮宝打印面单尺寸调整_如何打印身份证的实际尺寸?怎样用照片打印身份证复印件...
- 【51Nod - 1010 】只包含因子2 3 5的数 (打表,有坑越界)
- 读他:男人最怕听的十句话
- 企业微信添加机器人播报天气
- NSString 转为gbk
- keil spi 调试_单片机软件出问题了?有经验的工程师这么调试
- 如何通俗理解泊松分布?
- 【Python打卡2019】20190423之52周存钱挑战-for+range()函数使用
- Java实现 蓝桥杯VIP 算法提高 格子位置
- win10打印机无法打印(怎样使用打印机打印)
- Debian折腾笔记
- 本Blog独立站点米豆网开通了
- SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询
- XMPP增加删除好友
热门文章
- 嵌入式的发展前景如何?
- 计算机九宫格游戏怎么玩,如何玩数独九宫格游戏(四)
- 学会向上管理,4个提问技巧,让你事半功倍
- Windows + Ubuntu20.04双系统详细安装教程
- 推荐四款可视化工具,解决99%的可视化大屏需求
- k8s v1.22版本中Ingress配置:no matches for kind “Ingress“ in version “networking.k8s.io/v1beta1“
- HDU 2340 Obfuscation(dp)
- hyper-v服务器系统安装,hyper-v server 2012 安装部署记录
- 微观经济学: 鳄梨(Avocado)价格弹性分析
- MySql的存储过程的优点与缺点