預測乒乓球隊比賽成績

 1、相關內容python

模擬是用來解決現實師姐問題的重要手段和技術。計算機能夠經過模擬現實世界的運行過程提供通常狀況下沒法得到的信息,使用計算機模擬解決問題的實例包括天氣預測、飛機涉及、電影特效、核試驗甚至軍事對抗等,若是不採用計算機模擬,這些應用則須要機器複雜的實施過程,每每代價巨大。即便很簡單的模擬也能夠揭示一些困難問題的本質規律。dom

 

 

2、模擬比賽代碼以下函數

"""
@author: Jun
學號:32號
"""
import math
from random import random
print("模擬乒乓球比賽,誰先獲得11分,誰就勝出。若是打平,就是球數差爲2時,球數多的勝出")
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 simNGames(n,probA,probB):#單人:贏4局的勝場+1
    winsA ,winsB=0,0
    x,y=0,0
    for i in range(n):
        scoreA,scoreB=simOneGame(probA,probB)if scoreA>scoreB:#得分多的勝局+1
            x+=1
        else:
            y+=1
        if x==4:
            winsA +=1
            x=0
        elif y==4:
            winsB +=1
            y=0
    return winsA,winsB
def simMGames(n,probA,probB):#團隊:贏3局的勝場+1
    winsA ,winsB=0,0
    x,y=0,0
    for i in range(n):
        scoreA,scoreB=simOneGame(probA,probB)if scoreA>scoreB:
            x+=1
        else:
            y+=1
        if x==3:
            winsA +=1
            x=0
        elif y==3:
            winsB +=1
            y=0
    return winsA,winsB
def gameOver(a,b):#得分差大於等於2,一場比賽就結束
    if a==11 and b<10:
        return True
    elif b==11 and a<10:
        return True
    elif a>=10 and b>=10:#打平後,先領先2球,本局就結束
        if math.fabs(a-b)==2: 
            return True
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 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()

運行成果以下:spa

 

 3、打包文件3d

首先,咱們要用pip 下載pyinstaller,就輸入pip install pyinstaller,便可下載code

如圖:orm

下載成功後,找到你要打包的文件所在的文件位置blog

如圖,輸入pyinstaller 「文件名」ip

出現,表示打包成功了。get

而後,就能夠找到一個文件名爲,就是帶有exe的文件

這就是今天要說的內容了,後續,咱們將繼續深刻研究python語言。

相關文章
相關標籤/搜索