Python生成均匀随机数:贴合理论均值与标准差的方法及误区澄清
在Python中生成贴合理论定义的[0,1]均匀随机数
你的现有实现本身已经能生成贴合理论定义的均匀随机数,运行结果和理论值的差异属于样本量有限的正常统计波动:
- [0,1]区间均匀分布的理论均值为0.5,理论方差为1/12≈0.08333,理论标准差为√(1/12)≈0.28868
- 你给出的运行结果中,均值0.50167、标准差0.28804,和理论值非常接近,完全符合预期
之前的误解是混淆了方差和标准差的概念,把方差值当成了标准差的理论值,才会误以为结果不符合要求。
如果想要更高效的实现,也可以直接用numpy的随机数生成器(推荐使用较新的default_rng):
import numpy as np # 设置种子保证结果可复现 rng = np.random.default_rng(seed=5) # 直接生成10000个[0,1]均匀随机数 rands = rng.uniform(0, 1, size=10000) print(f"mean: {np.mean(rands)}") # ddof=0计算总体标准差,和理论定义一致 print(f"std: {np.std(rands, ddof=0)}")
当你增大样本量(比如生成100万个随机数),统计结果会更贴近理论值,这是大数定律的体现。
内容的提问来源于stack exchange,提问作者OmG
相关产品推荐
相关产品推荐

