053 例項13 體育競技分析

2022-02-22 22:25:00 字數 1632 閱讀 8566

目錄

二、自頂向下和自底向上

三、"體育競技分析"例項講解

四、"體育競技分析"舉一反三

十天快速入門 python完整教程目錄:

體育競技分析

高手過招,勝負只在毫釐之間

解決複雜問題的有效方法

逐步組建複雜系統的有效測試方法

程式總體框架及步驟

def main():

printintro()

proba, probb, n = getinputs()

winsa, winsb = simngames(n, proba, probb)

printsummary(winsa, winsb)

def printintro():

"""介紹性內容,提高使用者體驗"""

print("這個程式模擬兩個選手a和b的某種競技比賽")

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

def getinputs():

a = eval(input("請輸入選手a的能力值(0-1): "))

b = eval(input("請輸入選手b的能力值(0-1): "))

n = eval(input("模擬比賽的場次: "))

return a, b, n

def printsummary(winsa, winsb):

n = winsa + winsb

print("競技分析開始,共模擬{}場比賽".format(n))

print("選手a獲勝{}場比賽,佔比".format(winsa, winsa/n))

print("選手b獲勝{}場比賽,佔比".format(winsb, winsb/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 not gameover(scorea, scoreb):

if serving == "a":

if random() < proba:

scorea += 1

else:

serving = "b"

else:

if random() < probb:

scoreb += 1

else:

serving = "a"

return scorea, scoreb

def gameover(a,b):

return a==15 or b==15

體育競技分析

體育競技 2from random import random 3def printinfo 4print 這個程式模擬兩個選手a和b的羽毛球競技比賽 5print 程式需要兩個選手的能力值0 1 6print 規則 三局兩勝 21分制 7print 89defgetinput 10 a eval ...

Python 體育競技分析

自頂向下 print 這個程式模擬量個選手a和b的某種競技比賽 print 程式執行需要a和b的能力值 以0到1之間的小數表示 def getinputs a eval input 請輸入選手a的能力值 0 1 b eval input 請輸入選手b的能力值 0 1 n eval input 模擬比...

Python 體育競技分析

目錄 問題分析 自頂向下和自底向上 體育競技分析總體框架及步驟 舉一反三 體育競技分析 模擬n場比賽 比賽規則 自頂向下 自底向上 體育競技分析 import random def printinfo print 這個程式模擬兩個選手a和b的某種競技比賽 print 程式執行需要a和b的能力值 以0...