You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

给定均值与标准差,如何生成几何分布和二项分布随机数?

从均值和标准差生成几何分布与二项分布随机数

几何分布处理

numpy的np.random.geometric函数基于首次成功前的失败次数定义几何分布,其均值$\mu$与参数$p$的转换关系为:
$$\mu = \frac{1-p}{p} \implies p = \frac{1}{\mu + 1}$$

注意:几何分布的均值和标准差并非独立变量,标准差$\sigma$必须满足 $\sigma^2 = \mu(\mu+1)$,若输入的均值和标准差不匹配该关系,无法生成符合要求的几何分布数据。

示例代码:

import matplotlib.pyplot as plt
import numpy as np

# 给定符合几何分布约束的均值和标准差
geo_mean = 5
geo_std = np.sqrt(geo_mean * (geo_mean + 1))

# 转换为几何分布参数p
p_geo = 1 / (geo_mean + 1)

# 生成10000个随机数
x_geo = np.random.geometric(p=p_geo, size=10000)

# 绘制直方图
plt.hist(x_geo, density=True, bins=30)
plt.ylabel('Probability')
plt.xlabel('Data (几何分布:首次成功前的失败次数)')
plt.title('Geometric Distribution Histogram')
plt.show()

二项分布处理

二项分布由试验次数$n$和单次成功概率$p$定义,均值$\mu=np$,标准差$\sigma=\sqrt{np(1-p)}$。由于有两个未知参数,需先固定其中一个(比如试验次数$n$),再推导另一个参数:

  1. 由均值公式得 $p = \frac{\mu}{n}$
  2. 代入标准差公式验证:$\sigma = \sqrt{\mu(1 - \frac{\mu}{n})}$

若要从$\mu$和$\sigma$反推$n$,可通过公式推导:
$$\sigma^2 = \mu(1 - \frac{\mu}{n}) \implies n = \frac{\mu^2}{\mu - \sigma^2}$$
$n$必须为正整数,因此需对计算结果取整。

示例代码:

import matplotlib.pyplot as plt
import numpy as np

# 给定的均值和标准差
bin_mean = 20
bin_std = 4

# 方法1:手动指定试验次数n
n_bin = 100
p_bin = bin_mean / n_bin
# 验证标准差匹配度(允许少量误差,因n为整数)
print(f"理论标准差:{np.sqrt(n_bin * p_bin * (1 - p_bin))},输入标准差:{bin_std}")

# 方法2:从均值和标准差推导n(需确保μ > σ²)
# n_bin = int(np.round(bin_mean**2 / (bin_mean - bin_std**2)))
# p_bin = bin_mean / n_bin

# 生成10000个随机数
x_bin = np.random.binomial(n=n_bin, p=p_bin, size=10000)

# 绘制直方图
plt.hist(x_bin, density=True, bins=30)
plt.ylabel('Probability')
plt.xlabel('Data (二项分布:成功次数)')
plt.title('Binomial Distribution Histogram')
plt.show()

内容的提问来源于stack exchange,提问作者aus10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:55:28