篮球比赛模拟分析

本文介绍了一个使用Python编写的篮球比赛模拟程序,通过输入球员的能力值和模拟场次,模拟两队比赛并计算胜率。程序通过随机决定每次得分来模拟比赛过程。
摘要由CSDN通过智能技术生成

from random import *

STUDENT_ID_LAST_TWO = "31"  

def printIntro():  

    print(f"篮球比赛模拟程序 - 学生学号后两位:{STUDENT_ID_LAST_TWO}")  

    print("此程序用于模拟两个球员(或球队)之间的篮球比赛")  

    print("需要输入每个球员的能力值(0到1之间的小数)以及模拟比赛的次数")  

def getInputs():  

    a = float(input("请输入球员A的能力值(0-1): "))  

    b = float(input("请输入球员B的能力值(0-1): "))  

    n = int(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 simOneGame(probA, probB):  

    scoreA, scoreB = 0, 0  

    serving = "A"  

    while scoreA < 50 and scoreB < 50:  # 假设先达到50分者获胜  

        if serving == "A":  

            if random() < probA:  

                scoreA += 2  # 假设每次得分为2分  

            serving = "B"  

        else:  

            if random() < probB:  

                scoreB += 2  # 假设每次得分为2分  

            serving = "A"  

    return scoreA, scoreB  

def printSummary(winsA, winsB, n):  

    print("竞技分析开始,共模拟{}场比赛".format(n))  

    total_games = winsA + winsB  

    win_rate_A = winsA / total_games if total_games > 0 else 0  

    win_rate_B = winsB / total_games if total_games > 0 else 0  

    print("球员A获胜{}场,占比{:0.2%}".format(winsA, win_rate_A))  

    print("球员B获胜{}场,占比{:0.2%}".format(winsB, win_rate_B))  

def main():  

    printIntro()  

    probA, probB, n = getInputs()  

    winsA, winsB = simNGames(n, probA, probB)  

    printSummary(winsA, winsB, n)  

if __name__ == "__main__":  

    main()

  • 25
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值