【发布时间】:2019-06-07 08:16:00
【问题描述】:
我有以下代码
result=0
loop_n=10000
for i in range(loop_n):
result+=np.random.rand(3,4,10).std()
result=result/loop_n
print(result)
据我了解,如果我多次运行,结果应该是不同的,因为结果来自随机,但实际上结果总是在 0.287 左右
这背后有什么理论吗?
【问题讨论】:
-
顺便说一句:最后一行打算表达什么?它只会在 python 控制台中打印,否则你需要
print()。还包括所有导入 -
我只是想了解python是如何计算标准的
-
或许更好的问题应该是“为什么期望值为 0.287”
-
@RoMa
numpy来自uniform distribution 的样本。 unifrom 分布的标准差公式为sqrt((b-a)**2/12),其中b和a是分布的下限和上限。对于0和1,这是0.288。