模擬體育競技分析

2022-07-09 05:12:09 字數 2426 閱讀 4095

from random import

random

defprintintro():

print("

36號程式設計師的程式模擬兩個選手a和b的排球比賽")

print("

程式需要a和b的能力值(以0到1之間的小數表示)")

defgetinputs():

a=eval(input("

請輸入選手a的能力值(0—1):"))

b=eval(input("

請輸入選手b的能力值(0—1):"))

n=eval(input("

模擬比賽的場次:"))

return

a,b,n

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

defgameover1(a,b):

return (a>=25 and a-b>2) or (b>=25 and b-a>2)

defgameover2(a,b):

return (a>=15 and a-b>2) or (b>=15 and b-a>2)

defsimonegame(proba,probb):

for i in range (5):

winsa,winsb=0,0

scorea,scoreb=0,0

serving="a"

while

notgameover1(scorea,scoreb):

if serving=="a"

:

if random()

scorea+=1

else

: scoreb+=1serving="b"

else

:

if random()

scoreb+=1

else

: serving="a"

scorea+=1

if scorea>scoreb:

winsa+=1

else

: winsb+=1

if winsa==3 or winsb==3:

break

if winsa==2 and winsb==2:

simtowgame(proba,probb)

return

winsa,winsb

defsimtowgame(proba,probb):

for i in range (1):

scorea,scoreb=0,0

serving="a"

while

notgameover2(scorea,scoreb):

if serving=="a"

:

if random()

scorea+=1

else

: scoreb+=1serving="b"

else

:

if random()

scoreb+=1

else

: serving="a"

scorea+=1

return

scorea,scoreb

defprintsummary(winsa,winsb):

n=winsa+winsb

print("

競技分析開始,共模擬{}場比賽

".format(n))

print("

選手a獲勝{}場比賽,佔比

".format(winsa,winsa/n))

print("

選手b獲勝{}場比賽,佔比

模擬體育競技分析

coding utf 8 created on tue jun 9 11 18 48 2020 author 13549 from random import random 第一階段 defprintintro print 模擬兩個選手a和b的羽毛球比賽 print 程式執行需要a和b的能力值 以0...

模擬體育競技分析

比賽規則 1.採用5局3勝制 2.前四局採用25分制,每個隊只有在贏得至少25分,且同時超過對方2分時才勝一局 3.決勝局 第五局 採用15分制,先獲得15分,且同時超過對方2分為勝 from random import random defgetinputs 獲得使用者輸入的引數 a eval i...

模擬體育競技分析

from random import random 列印程式介紹資訊 def printintro print 進行比賽分析結果 print 這是團體賽模擬程式 獲得程式執行引數 def getinputs a eval input 請輸入隊伍a的能力值 0 1 b eval input 請輸入隊伍...