问题描述:
编写5名选手参与的篮球投篮模拟比赛,每场比赛中,每个选手投篮10个,命中多者获胜(可多人同时获胜),模拟1000次比赛,输出比赛结果分析报告。编写5名选手参与的篮球投篮模拟比赛,每场比赛中,每个选手投篮10个,命中多者获胜(可多人同时获胜)。
样例:
A的命中率:0.5
B的命中率:0.6
C的命中率:0.7
D的命中率:0.8
E的命中率:0.9
模拟次数:1000
输出:
选手A获胜次数为:12,占比为1.2%
选手B获胜次数为:60,占比为6.0%
选手C获胜次数为:133,占比为13.3%
选手D获胜次数为:355,占比为35.5%
选手E获胜次数为:795,占比为79.5%
import random
def getInputs(): #输入选手的命中率和模拟比赛次数
t=[]
for i in 'ABCDE':
t.append(eval(input("{}的命中率:".format(i)))) #将命中率存入t列表中
n=eval(input("模拟次数:"))
return t,n
def oneGame(x): #一次投篮游戏
num=0
for i in range(10):
if random.random()<=x:
num=num+1
return num
def main():
a=[0,0,0,0,0] #存放总获胜次数
t,n=getInputs()
for i in range(n):
b=[] #存放一回合游戏结果
for i in range(5):
b.append(oneGame(t[i]))
s=max(b)
for j in range(5):
if b[j]==s:
a[j]+=1
k=0
for i in 'ABCDE':
print("选手{}获胜次数为:{},占比为{}%".format(i,a[k],a[k]/10))
k+=1
main()