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