今天我們用python進(jìn)行體育競技分析,預(yù)測球隊成績
我們擁有10年網(wǎng)頁設(shè)計和網(wǎng)站建設(shè)經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、成都做手機(jī)網(wǎng)站、H5建站、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計或者設(shè)計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計服務(wù)并滿足您的需求。一. 體育競技分析的IPO模式 :
輸入I(input):兩個球員的能力值,模擬比賽的次數(shù)(其中,運動員的能力值,可以通過發(fā)球方贏得本回合的概率來表示,
一個能力值為0.8的球員,在他發(fā)球時,有80%的可能性贏得1分)
處理P(process):模擬比賽過程
輸出O(output):兩個球員獲勝的概率
該體育競技程序,我們采用自頂向下的設(shè)計方法。
自頂向下的設(shè)計是一種解決復(fù)雜問題的行之有效的方法。其步驟如下
自頂向下設(shè)計的基本思想,如下圖:
二.我們首先采用兵乓球的比賽規(guī)則
一局比賽中,先得11分的一方為勝方,如果10平后,則比對方多得兩分為勝方
一場比賽中,采用7局四勝的方式
代碼如下:
# -*- coding: utf-8 -*- """ Created on Wed May 15 12:49:17 2019 @author: moyulin """ from random import random def printIntro(): print("BY 2018310143103") print("這個程序模擬兩個選手A和B的兵乓球比賽") print("程序運行需要A和B的能力值(以0到1之間的小數(shù)表示)") def getInputs(): a = eval(input("請輸入選手A的能力值(0-1): ")) b = eval(input("請輸入選手B的能力值(0-1): ")) n = eval(input("請輸入模擬比賽的局?jǐn)?shù): ")) return a, b, n def simNGames(n, probA, probB): WinsA, WinsB = 0, 0 winsA, winsB = 0, 0 for i in range(1,n+1): scoreA, scoreB = simOneGame(probA, probB) if scoreA > scoreB: winsA += 1 else: winsB += 1 if i%7==0: if winsA>winsB: WinsA+=1 print("單打第{}場勝利的為A".format(int(i/7))) else: WinsB+=1 print("單打第{}場勝利的為B".format(int(i/7))) winsA,winsB=0,0 return WinsA, WinsB def gameOver(a,b): if a>=10 and b>=10: if abs(a-b)==2: return True if a<10 or b<10: if a==11 or b==11: return True else: return False def simOneGame(probA, probB): scoreA, scoreB = 0, 0 serving = "A" while not gameOver(scoreA, scoreB): if serving == "A": if random() < probA: scoreA += 1 else: scoreB +=1 serving="B" else: if random() < probB: scoreB += 1 else: scoreA += 1 serving="A" return scoreA, scoreB def printSummary(winsA, winsB): n = winsA + winsB print("競技分析開始,共模擬{}場比賽".format(n)) print("選手A獲勝{}場比賽,占比{:0.1%}".format(winsA, winsA/n)) print("選手B獲勝{}場比賽,占比{:0.1%}".format(winsB, winsB/n)) def main(): printIntro() probA, probB, n = getInputs() WinsA, WinsB = simNGames(n, probA, probB) printSummary(WinsA, WinsB) main()
網(wǎng)站題目:使用Python進(jìn)行體育競技分析(預(yù)測球隊成績)-創(chuàng)新互聯(lián)
瀏覽路徑:http://bm7419.com/article22/gdcjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站設(shè)計、網(wǎng)站排名、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容