日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python简单体育竞技模拟_Python程序设计思维练习---体育竞技分析-阿里云开发者社区...

發布時間:2025/3/15 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python简单体育竞技模拟_Python程序设计思维练习---体育竞技分析-阿里云开发者社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

體育競技分析:模擬N場比賽

計算思維:抽象 + 自動化

模擬:抽象比賽過程,自動模擬N場比賽,當N越大時,比賽結果分析越科學。

本次比賽規則:回合制,15分一局,先由一方發球,如勝利,則得1分并繼續發球,如失敗,則雙方分數不改變并交換球權。球員AB的能力為0-1之間的一個數值

思維方式:自頂向下即將一個復雜問題分解成幾個問題,再細分成一個個具體的小問題,從而來解決復雜問題。自底向上為自頂向下的逆過程,即解決復雜問題的方法,逐步解決一個個小問題,來達成目的。

1.將體育競技分析分解為以下幾個小步驟

1.1打印程序的介紹性信息式

1.2獲得程序運行參數:probA(A的能力值),probB(B的能力值),n(比賽場次)

1.3利用球員AB的能力值,模擬n場比賽

1.4輸出球員AB獲勝的場次及概率

2.將各個步驟定義成函數來實現

分解

定義函數

3.完整代碼

from random import random

def printInfo(): # 打印程序介紹信息

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 simOneGame(probA, probB): # 進行一場比賽

scoreA, scoreB = 0, 0 # 初始化AB的得分

serving = 'A' # 首先由A發球

while not gameOver(scoreA, scoreB): #用while循環來執行比賽

if serving == 'A':

if random() < probA: # random() 方法返回隨機生成的一個實數,它在[0,1)范圍內。

scoreA += 1 # 用隨機數來和能力值比較從而分出勝負

else:

serving = 'B'

else:

if random() < probB:

scoreB += 1

else:

serving = 'A'

return scoreA, scoreB

def simNGames(n, probA, probB): #進行N場比賽

winsA, winsB = 0, 0 # 初始化AB的勝場數

for i in range(n):

scoreA, scoreB = simOneGame(probA, probB)

if scoreA > scoreB:

winsA += 1

else:

winsB += 1

return winsA, winsB

def gameOver(c, d): #比賽結束

return c==15 or d==15

def printSummary(n ,winA, winB): #打印比賽結果

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

print('選手A獲勝{}場比賽,占比{:.2f}%'.format(winA, winA/n*100))

print('選手B獲勝{}場比賽,占比{:.2f}%'.format(winB, winB / n * 100))

def main():

printInfo()

probA, probB, n =getInputs()

winsA, winsB = simNGames(n, probA, probB)

printSummary(n, winsA, winsB)

main()

4.運行結果分析

菜鳥互啄

中階對抗

皇城PK

分析以上數據得知:對于兩位能力相差相同的選手(都為0.05),能力越大的選手競技時,勝負概率越接近。

總結

以上是生活随笔為你收集整理的python简单体育竞技模拟_Python程序设计思维练习---体育竞技分析-阿里云开发者社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。