gpt4 book ai didi

Python 循环收集数据

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:33 25 4
gpt4 key购买 nike

我有一个 NFL 模拟器,可以根据几个变量运行并给出两支球队的得分,但我希望模拟器更加准确。我试图让它运行 100 次,计算每个团队获胜的次数,同时还跟踪每个团队在每次模拟中的得分,然后生成他们的平均得分。我有点不知道如何收集分数,然后将它们加在一起并除以 100。此外,如何将“胜利”分配给循环中的团队。

    def calc(self):
selected_indexA = teams.index(self.var1.get())

PowerRankA = power_rankings[selected_indexA]
WinPercA = winning_percentage[selected_indexA] * 100
LuckA = random.randrange(0,25)
HomeBonus = 10

selected_indexB = teams.index(self.var2.get())

PowerRankB = power_rankings[selected_indexB]
WinPercB = winning_percentage[selected_indexB] * 100
LuckB = random.randrange(0,25)
HomeBonus = 10

TeamAScore = (PowerRankA + WinPercA + LuckA) / 3
TeamBScore = (PowerRankB + WinPercB + LuckB + HomeBonus) / 3

self.lblScoreA["text"] = int(TeamAScore)
self.lblScoreB["text"] = int(TeamBScore)

def sim(self):
count = 0
while count <= 100:
if TeamAScore > TeamBScore:
self.lblWinsA = 1
else:
self.lblWinsB = 1
count +=1

最佳答案

您可以模拟 100 场比赛,并在 for 循环中将分数相加,然后除以 100

TeamAScore = 0
TeamBScore = 0

TeamAWins = 0
TeamBWins = 0
NoWins = 0

for i in range(100):
LuckA = random.randrange(0,25)
LuckB = random.randrange(0,25)

ScoreA = (PowerRankA + WinPercA + LuckA) / 3
ScoreB = (PowerRankB + WinPercB + LuckB + HomeBonus) / 3

TeamAScore += ScoreA
TeamBScore += ScoreB

if ScoreA > ScoreB:
TeamAWins += 1
elif ScoreA < ScoreB:
TeamBWins += 1
else:
NoWins += 1


TeamAScore /= 100.0
TeamBScore /= 100.0

print "Avg. Score for TeamA:", TeamAScore, " number of Wins:", TeamAWin
print "Avg. Score for TeamB:", TeamBScore, " number of Wins:", TeamBWin
print "No Wins:", NoWins

如果您需要记住所有分数,请使用 list.append()

TeamA_All_Scores = [] # list for all scores
TeamB_All_Scores = [] # list for all scores

TeamAWins = 0
TeamBWins = 0
NoWins = 0

for i in range(100):
LuckA = random.randrange(0,25)
LuckB = random.randrange(0,25)

ScoreA = (PowerRankA + WinPercA + LuckA) / 3
ScoreB = (PowerRankB + WinPercB + LuckB + HomeBonus) / 3

TeamA_All_Scores.append(ScoreA)
TeamB_All_Scores.append(ScoreB)

if ScoreA > ScoreB:
TeamAWins += 1
elif ScoreA < ScoreB:
TeamBWins += 1
else:
NoWins += 1


TeamAScore = sum(TeamA_All_Scores) / 100.0
TeamBScore = sum(TeamB_All_Scores) / 100.0

print "Avg. Score for TeamA:", TeamAScore, " number of Wins:", TeamAWin
print "Avg. Score for TeamB:", TeamBScore, " number of Wins:", TeamBWin
print "No Wins:", NoWins
print "TeamA All Scores:", ",".join(TeamA_All_Scores)
print "TeamB All Scores:", ",".join(TeamB_All_Scores)

关于Python 循环收集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20403239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com