模拟运动技能分析
从随机导入随机
Def printInfo(): #打印程序介绍信息
印刷品(《模拟运动技能分析-乒乓球比赛规则-第31期》)
Print('这个程序模拟了两个玩家A和B之间的某种竞争)
打印(' A和B的能力值(以0到1之间的小数位表示)')
Getinputs () : #获取程序运行参数。
A=eval(输入('请输入玩家A的能力值(0-1): ')
B=评价(输入('请输入玩家B的能力值(0-1): ')
N=eval(输入('模拟匹配号码: ')
返回a、b、n
Def西蒙尼游戏(Proba,Probb) : #进行游戏
ScoreA,scoreB=0,0 #初始化AB的分数
发球='A' # A先发球。
当游戏未结束时(记分卡,记分卡): #使用While循环执行游戏。
如果服务=='A':
if random()proba 3360 # random()方法返回一个在[0,1]范围内随机生成的实数。
ScoreA=1 #使用随机数与能力值比较输赢。
else:
上菜='B '
else:
if随机()问题B:
scoreB=1
else:
上菜='A '
返回scoreA,scoreB
Def simn games (n,proba,probb) : #玩n个游戏
WinsA,winsB=0,0 #初始化AB的中奖号码
对于范围(n):内的I
scoreA,scoreB=simOneGame(probA,probB)
if scoreA scoreB:
winsA=1
else:
winsB=1
返回winsA,winsB
高清游戏结束(c,d): #游戏结束
返回(c==11和d 10)或(d==11和c 10)或(c=10和d=10和(c - d=2或d - c=2))
Def打印摘要(n,wina,winb) : #打印比赛结果
打印(竞争分析开始,共模拟{}场比赛)。格式(n))
打印('玩家A赢了{}场,占{33,360.2f}% '。格式(WinA、WinA/n * 100))
打印('玩家B赢了{}场,占{33,360.2f}% '。格式(WINB,WINB/N * 100))
def main():
printInfo()
probA,probB,n=getInputs()
winsA,winsB=simNGames(n,probA,probB)
打印摘要(n,winsA,winsB)
main()
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/88691.html