写一份程序,从0~100的均匀分布中进行随机抽取100个样,获取其均值,重复以上操作,重复10000次,最后输出均值大小其在0~100上的概率分布图
时间: 2024-10-12 14:15:27 浏览: 28
在Python中,我们可以使用numpy库来生成随机数并计算平均值,matplotlib库则用于绘制概率分布图。下面是一个简单的示例程序,它会按照您的需求执行:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义函数来生成样本、计算平均值并存储结果
def generate_samples(n_repetitions, n_samples):
mean_values = []
for _ in range(n_repetitions):
sample = np.random.uniform(0, 100, n_samples)
mean_values.append(np.mean(sample))
return mean_values
# 运行实验并收集数据
n_repetitions = 10000
n_samples = 100
mean_values = generate_samples(n_repetitions, n_samples)
# 计算每个均值在0到100的概率分布
hist, bins = np.histogram(mean_values, bins=range(0, 101), density=True)
# 绘制概率密度图
plt.figure(figsize=(10, 6))
plt.hist(bins[:-1], bins, weights=hist, edgecolor='black', linewidth=1.2)
plt.xlabel('Mean Value')
plt.ylabel('Probability Density')
plt.title(f"Distribution of Sample Means (0-100) after {n_repetitions} repetitions")
plt.grid(True)
plt.show()
# 输出均值的统计信息
print(f"Mean of all means: {np.mean(mean_values)}")
print(f"Standard deviation of means: {np.std(mean_values)}")
阅读全文