擅长:python、mysql、java
<p>有两种简单的方法可以在跑步中获得最大值:</p>
<ul>
<li>有一个保持最大值的变量。例如,从<code>maxwealth=0</code>开始,然后在while循环中,让<code>if wealth > maxwealth: maxwealth = wealth</code>在财富增加时更新maxwealth。如果您不存储值列表,那么这是一个有用的方法,尽管在您的情况下是这样</李>
<li>只需在列表的末尾使用内置的<code>max</code>函数:<code>max(lwealth)</code>将为您提供列表中的最大值</李>
</ul>
<p>现在,关于如何获得5000次以上的平均最大跑步次数?最简单的方法是在代码中循环5000次,存储一个最大值列表,然后执行<code>sum(maxes)/len(maxes)</code>。或者,使用马克·科兰的答案,用类似<code>maxtotal += maxwealth</code>的值累加,然后除以n</p>
<p>例如:</p>
<pre><code>import itertools
import random
n = 5000
maxtotal = 0
for _ in itertools.repeat(None, n):
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
maxtotal += max(lwealth)
print maxtotal/n
</code></pre>
<p>但是请注意,在代码中使用numpy可能是一个好主意。你的代码循环5000次需要很长时间</p>