模拟体育竞赛分析

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了模拟体育竞赛分析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
From random import randomdef PRintInfo():  # 打印程序介绍信息    print('模拟体育竟技分析--乒乓球比赛规则--30号')    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('模拟比赛场次:'))    return a, b, ndef simOneGame(probA, probB):  # 进行一场比赛    scoreA, scoreB = 0, 0  # 初始化AB的得分    serving = 'A'  # 首先由A发球    while not gameOver(scoreA, scoreB):  # 用while循环来执行比赛        if serving == 'A':            if random() < probA:  # random() 方法返回随机生成的一个实数,它在[0,1)范围内。                scoreA += 1  # 用随机数来和能力值比较从而分出胜负            else:                serving = 'B'        else:            if random() < probB:                scoreB += 1            else:                serving = 'A'    return scoreA, scoreBdef simNGames(n, probA, probB):  # 进行N场比赛    winsA, winsB = 0, 0  # 初始化AB的胜场数    for i in range(n):        scoreA, scoreB = simOneGame(probA, probB)        if scoreA > scoreB:            winsA += 1        else:            winsB += 1    return winsA, winsBdef gameOver(c, d):  # 比赛结束    return (c == 11 and d < 10) or (d == 11 and c < 10) or (c >= 10 and d >= 10 and (c - d >= 2 or d - c >= 2))def printSummary(n, winA, winB):  # 打印比赛结果    print('竞技分析开始,共模拟{}场比赛'.format(n))    print('选手A获胜{}场比赛,占比{:.2f}%'.format(winA, winA / n * 100))    print('选手B获胜{}场比赛,占比{:.2f}%'.format(winB, winB / n * 100))def main():    printInfo()    probA, probB, n = getInputs()    winsA, winsB = simNGames(n, probA, probB)    printSummary(n, winsA, winsB)main()

模拟体育竞赛分析

&nbsp;

脚本宝典总结

以上是脚本宝典为你收集整理的模拟体育竞赛分析全部内容,希望文章能够帮你解决模拟体育竞赛分析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。