Skip to main content
 首页 » 编程设计

python之为什么结果总是在 2.87 左右

2025年05月04日11think

我有下面的代码

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 左右

这背后有什么理论吗?

请您参考如下方法:

这只是证明 np.random.rand 是一个不错的uniform 随机生成器。您有 10000 个遵循相同定律的分布标准差观测值。标准差是方差的平方根,所以理论(概率)标准差是(max - min) / sqrt(12) .您的样本量相当大,因此观察到的估计量将接近理论标准差,即 1/sqrt(12),大约为 0.28867513459481287。但它现在变成了一个数学问题:-)


假设在 [0,1] 上均匀分布,概率(理论)均值 E(X) 是 x 在段 [0-1] 上的积分,即 0.5。方差根据定义 E((X-E(X))2) 可以计算为 x2 在 [-0.5,0.5] 段及其上的积分平方根给出上面写的结果。