采用排球比赛规则

# 一共比赛是五局三胜(就是五局)
# 前四局 先达到25分而且超两分
# 最后一局先达到15赢(决赛时达到8分后换场地)
# 能力值通过随机数来进行比赛得分模拟
from random import random
def SC():
    input("这个程序是模拟队伍A和队伍B的排球竞技比赛")
    input("需要A队伍和B队伍的能力值(以0.1到0.01之间的小数表示)")
def BS1(PA, PB):
    SJ = "a"
    SA, SB = 0, 0
    while not (SA == 25 or SB == 25):
        if SJ == "a":
            if PA > random():
                SA += 1
                SJ = "a"
            else:
                SJ = "b"
        else:
            if PB > random():
                SB += 1
                SJ = "b"
            else:
                SJ = "a"
    return SA, SB
def BS3(PA, PB):
    SA, SB = 0, 0
    SJ = "a"
    while not (SA == 15 or SB == 15):
        if SJ == "a":
            if PA > random():
                SA += 1
                SJ = "a"
            else:
                SJ = "b"
        else:
            if PB > random():
                SB += 1
                SJ = "b"
            else:
                SJ = "a"
    return SA, SB
def BS2(NLJA, NLJB):
    winA, winB = 0, 0
    for i in range(4):
        SJA, SJB = BS1(NLJA, NLJB)
        if SJA > SJB:
            winA += 1
        else:
            winB += 1
    if winA == winB:
        SJA, SJB = BS2(NLJA, NLJB)
        if SJA > SJB:
            winA += 1
            print("win:{}".format(winA))
        else:
            winB += 1
    return winA, winB
SC()
a = eval(input("请输入A队伍的能力值(0-1):"))
b = eval(input("请输入B队伍的能力值(0-1):"))
winA, winB = BS2(a, b)
print("A队伍赢的次数为:{},获胜率为:{}".format(winA, winA / 5))
print("A队伍赢的次数为:{},获胜率为:{}".format(winB, winB / 5))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值