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()
    
    

      

  • 相关阅读:
    转载——rdis安装yum版本
    Lc28_strStr kmp字符串匹配
    关于 哈希的总结
    Lc344_反转字符串
    Lc383_赎金信
    Lc454_四数相加 II
    Lc1_俩数之和
    推荐4款个人珍藏的IDEA插件!帮你写出不那么差的代码
    ZUC-生成随机序列
    移位运算
  • 原文地址:https://www.cnblogs.com/hewa123-/p/14022275.html
Copyright © 2011-2022 走看看