使用python 2.7。
我有一个参数,它接受一个列表,将参数列表的值添加到列表“team”,然后比较某些位置值并根据值返回win,loss或tie。
def starterTrans3(starter):
wins = 0
losses = 0
nd = 0
team = [[1, 0], [1, 0], [0, 5], [3, -1]]
random.shuffle(team)
for t, s in zip(team, starter):
t.extend(s)
score_add(team, exit_score(team, starter))
length = len(starter)
for i in range(0, length):
if team[i][4] > 0 and (team[i][1] > -team[i][4]) and team[i][2] >= 5:
wins += 1
elif team[i][4] < 0 and (team[i][1] <= -team[i][4]):
losses += 1
elif (team[i][4] <= 0 and team[i][1] >= -team[i][4]):
nd += 1
return wins, losses, nd
我希望能够多次模拟结果,使用random.shuffle(团队)随机排序团队列表。
我可以使用:
def MonteCarlo(starter, x):
for i in range(0, x):
print starterTrans3(starter)
但我希望能够将所有模拟中的所有胜利,损失和关系加起来,然后除以模拟数量(在这种情况下为x),以获得平均胜利,损失和在所有模拟中都有联系。
我已经尝试更改starterTrans函数以使total_wins变量等于+ = wins,但我无法弄明白。有什么想法吗?
答案 0 :(得分:2)
我可能不明白你的观点,但是......
def MonteCarlo(starter, x):
result = dict(w=0,l=0,n=0)
for i in range(0, x):
w,l,n = starterTrans3(starter)
result['w']+=w
result['l']+=l
result['n']+=n
return result
或
return result['w']/float(x),result['l']/float(x),result['n']/float(x)