擅长:python、mysql、java
<p>你的问题是试图计算平均值、方差和标准差,作为某种运行的总和,所有这些都是同时计算的。你不能用你在这里使用的那些特定的公式。正如你用手展示的,你先计算平均值,只有在你得到全部平均值之后,你才计算方差,然后在得到方差之后,你才计算标准差。你不能仅仅把方差公式应用到一个平均值上,然后希望事情会好起来。在</p>
<pre><code>import math
def dev_stan(prob, ret):
Pro = 0
Des_Stan = 0
Var = 0
for i in range(len(ret)):
Pro += prob[i]*ret[i]
for i in range(len(ret)):
Var += (ret[i] - Pro)**2*prob[i]
Des_Stan = (math.sqrt(Var))
return Des_Stan, Var, Pro, ret, prob
</code></pre>
<p>应该行得通。请注意,最后一个<code>Des_Stan</code>必须在for循环之外。如果你想计算平均值、方差和标准差的连续估计值,你必须使用不同的公式。在</p>