比赛

import random

print("学号后两位19")

# 输入
ability1, ability2 = map(float, input("请输入两个球员的能力值,以空格分隔:").split())
match_times = int(input("请输入模拟比赛的次数:"))

win_count1, win_count2 = 0, 0
for _ in range(match_times):
    game_win1, game_win2 = 0, 0
    while True:
        if game_win1 == 2:
            win_count1 += 1
            break
        elif game_win2 == 2:
            win_count2 += 1
            break
        score1, score2 = 0, 0
        while True:
            if random.random() < ability1 / (ability1 + ability2):
                score1 += 1
            else:
                score2 += 1
            if score1 >= 21 and score1 - score2 >= 2:
                game_win1 += 1
                break
            elif score2 >= 21 and score2 - score1 >= 2:
                game_win2 += 1
                break
            elif score1 == 20 and score2 == 20:
                while True:
                    if random.random() < ability1 / (ability1 + ability2):
                        score1 += 1
                    else:
                        score2 += 1
                    if score1 - score2 >= 2:
                        game_win1 += 1
                        break
                    elif score2 - score1 >= 2:
                        game_win2 += 1
                        break
            elif score1 == 29 and score2 == 29:
                if random.random() < ability1 / (ability1 + ability2):
                    score1 += 1
                    game_win1 += 1
                else:
                    score2 += 1
                    game_win2 += 1
                break

# 输出
win_rate1 = win_count1 / match_times
win_rate2 = win_count2 / match_times
print(f"球员1获胜概率为:{win_rate1}")
print(f"球员2获胜概率为:{win_rate2}")

 

posted @ 2025-06-23 13:35  叶柯鑫  阅读(10)  评论(0)    收藏  举报