我正开始学习python,我和我的朋友刚刚随机编造了一个关于这段代码的问题。记录5000次跑步中的最高Y点并取平均值的正确方法是什么
#!/usr/local/bin/python
import random
import matplotlib.pyplot as plt
n = 5000
p_win = 0.50
stakecounter = 0
wealth = 3.3
lwealth = [3.3]
bet = .1
while wealth > 0 :
flip = random.random() <= p_win
win = 3 if flip else -3
wealth = wealth + win * bet
lwealth.append(wealth)
stakecounter += 1
print(len(lwealth))
plt.plot(lwealth)
plt.show()
有两种简单的方法可以在跑步中获得最大值:
maxwealth=0
开始,然后在while循环中,让if wealth > maxwealth: maxwealth = wealth
在财富增加时更新maxwealth。如果您不存储值列表,那么这是一个有用的方法,尽管在您的情况下是这样李>max
函数:max(lwealth)
将为您提供列表中的最大值李>现在,关于如何获得5000次以上的平均最大跑步次数?最简单的方法是在代码中循环5000次,存储一个最大值列表,然后执行
sum(maxes)/len(maxes)
。或者,使用马克·科兰的答案,用类似maxtotal += maxwealth
的值累加,然后除以n例如:
但是请注意,在代码中使用numpy可能是一个好主意。你的代码循环5000次需要很长时间
正如前面的回答所建议的,一行代码跟踪maxwealth
获取平均值的一种更简单、更快的方法是在while循环中添加以下行:
…然后就在while循环之后:
也就是说,与其保留一个财富点数列表以便以后进行平均,只需计算财富点数的总和,然后除以财富点数即可得到平均值
相关问题 更多 >
编程相关推荐