zoukankan      html  css  js  c++  java
  • 模拟体育竞技分析

    from random import random
    def printInfo():
        print("我的学号后两位是:03何娃")
    
    def getInputs():
        a = eval(input("请输入选手A的能力值(0-1): "))
        b = eval(input("请输入选手B的能力值(0-1): "))
        n = eval(input("模拟比赛的场次: "))
        return a, b, n
    def simNGames(n, probA, probB):
        winsA, winsB = 0, 0
        for i in range(n):
            scoreA, scoreB = simOneGame(probA, probB)
            if scoreA > scoreB:
                winsA += 1
            else:
                winsB += 1
        return winsA, winsB
    def gameOver(a,b):
        if a>=10 and b>=10:
             if abs(a-b)==2:
                 return 1
        elif a<10 and b<10:
             if a==11 or b==11:
                 return 1
        else:
             return 0
    def simOneGame(probA,probB):
        scoreA,scoreB=0,0
        serving="A"
        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
    def printSummary(winsA,winsB):
         n=winsA+winsB
         print("选手A获胜{}场比赛,获胜的概率为{:0.1%}".format(winsA,winsA/n))
         print("选手B获胜{}场比赛,获胜的概率为{:0.1%}".format(winsB,winsB/n))
    def main():
        printInfo()
        probA,probB,n=getInputs()
        winsA,winsB=simNGames(n,probA,probB)
        printSummary(winsA,winsB)
    main()
    
    

      

  • 相关阅读:
    Linux makefile教程之概述一[转]
    Valid Parentheses
    Letter Combinations of a Phone Number
    机器学习经典分类算法 —— C4.5算法(附python实现代码)
    3Sum Closest
    3Sum
    Integer to Roman
    寒假文献阅读(四)
    Longest Common Prefix
    Roman to Integer
  • 原文地址:https://www.cnblogs.com/hewa123-/p/14022275.html
Copyright © 2011-2022 走看看