体育模拟
随机导入
def printInfo():
打印('模拟体育竞技)
打印('学号后两位:26,曾俊谌)
def getInputs():
a=评估(输入('请输入选手A的能力值(0 - 1,保留一位小数):'))
b=评估(输入('请输入选手B的能力值(0 - 1,保留一位小数):'))
返回a,b
def gameover_1(a,b):
返回a==25或b==25,ABS(a-b)=2
def gameover_2(a,b):
返回a==15或b==15,ABS(a-b)=2
def simOneGame_1(probA,probB):
scoreA,scoreB=0,0
标志='A '
而不是game over _ 1(SceA,SceB):
如果标志=='A':
if rand int(1,10 *(ProbA ProbB))=10 * ProbA 3360
scoreA=1
else:
scoreB=1
标志='B '
如果标志=='B':
if rand int(1,10 *(ProbA ProbB))10 * ProbA 3360
scoreB=1
else:
scoreA=1
标志='A '
返回scoreA,scoreB
def simOneGame_2(probA,probB):
scoreA,scoreB=0,0
标志='A '
而不是游戏结束_ 2(SceA,SceB):
如果标志=='A':
if rand int(1,10 *(ProbA ProbB))=10 * ProbA 3360
scoreA=1
else:
scoreB=1
标志='B '
如果标志=='B':
if rand int(1,10 *(ProbA ProbB))10 * ProbA 3360
scoreB=1
else:
scoreA=1
标志='A '
返回scoreA,scoreB
def simNGames(probA,probB):
winsA,winsB=0,0
对于范围(5):内的我
如果i=3:
scoreA,scoreB=simOneGame_1(probA,probB)
if scoreAscoreB:
winsA=1
else:
winsB=1
如果winsA==3或winsB==3:
打印('大比分领先对局)
破裂
如果i==4:
scoreA,scoreB=simOneGame_2(probA,probB)
if scoreAscoreB:
winsA=1
else:
winsB=1
打印('势均力敌对局)
返回winsA,winsB
def printSummary(winsA,winsB):
n=winsA winsB
打印('竞技分析开始,共模拟{}场比赛。格式(n))
打印('选手A获胜{}场比赛,占比{:0.1%}'.格式(winsA,winsA/n))
打印('选手B获胜{}场比赛,占比{:0.1%}'.格式(winsB,winsB/n))
def main():
printInfo()
probA,probB=getInputs()
winsA,winsB=simNGames(probA,probB)
打印摘要(winsA、winsB)
main()
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/89914.html