排球竞赛
2021/11/14 6:09:49
本文主要是介绍排球竞赛,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
from random import random
def printInfo():
print(114)
print('This program simulates a game between two')
print('There are two players, A and B')
print('Probability(a number between 0 and 1)is used')
def getInputs():
a = eval(input('What is the prob.player A wins? (0-1):'))
b = eval(input('What is the prob.player B wins? (0-1):'))
n = eval(input('How many games to simulate? :'))
return a, b, n
def gameOver(a, b):
if a >= 15 and b >= 15 and abs((a - b)) > 2:
return True
def simOneGame(probA, probB):
scoreA, scoreB, winA, winB = 0, 0, 0, 0
serving = 'A'
if winA < 2 and winB < 2:
while not gameOver(scoreA, scoreB):
if serving == 'A':
if random() < probA:
scoreA += 1
else:
serving = 'B'
else:
if random() < probB:
scoreB += 1
else:
serving = 'A'
return scoreA, scoreB
if scoreA > scoreB:
winA += 1
else:
winB += 1
if winA == 2:
return 1, 0
else:
return 0, 1
def simNGames(n, probA, probB):
winsA, winsB = 0, 0
for i in range(n):
winA, winB = simOneGame(probA, probB)
if winA > winB:
winsA += 1
else:
winsB += 1
return winsA, winsB
def printSummary(n , winsA, winsB):
print('Games simulated:{}'.format(n))
print('wins for A:{}({:.2f}%)'.format(winsA, winsA / n * 100))
print('wins for B:{}({:.2f}%)'.format(winsB, winsB / n * 100))
def main():
printInfo()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(n, winsA, winsB)
if __name__ == '__main__':
main()
这篇关于排球竞赛的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Java管理系统项目实战入门教程
- 2024-11-02Java监控系统项目实战教程
- 2024-11-02Java就业项目项目实战:从入门到初级工程师的必备技能
- 2024-11-02Java全端项目实战入门教程
- 2024-11-02Java全栈项目实战:从入门到初级应用
- 2024-11-02Java日志系统项目实战:初学者完全指南
- 2024-11-02Java微服务系统项目实战入门教程
- 2024-11-02Java微服务项目实战:新手入门指南
- 2024-11-02Java项目实战:新手入门教程
- 2024-11-02Java小程序项目实战:从入门到简单应用