编写一个产生均值为1,方差为4的高斯分布随机数程序,求最大值,最小值,均值与方差,并与理论值比较
时间: 2023-09-15 18:22:22 浏览: 141
matlab程序.rar_椒盐噪声_维纳滤波法_高斯噪声_高斯噪声去除_高斯噪声滤波
5星 · 资源好评率100%
以下是Python代码实现:
```python
import random
import math
def gaussian(mean, variance):
# 生成高斯分布随机数
u1 = random.random()
u2 = random.random()
z = math.sqrt(-2.0 * math.log(u1)) * math.cos(2 * math.pi * u2)
return z * math.sqrt(variance) + mean
# 生成1000个高斯分布随机数
data = [gaussian(1, 4) for _ in range(1000)]
# 求最大值、最小值、均值和方差
max_val = max(data)
min_val = min(data)
mean_val = sum(data) / len(data)
variance_val = sum([(x - mean_val) ** 2 for x in data]) / len(data)
# 输出结果并与理论值比较
print("最大值:", max_val, "理论值:", 1 + 2 * math.sqrt(2))
print("最小值:", min_val, "理论值:", 1 - 2 * math.sqrt(2))
print("均值:", mean_val, "理论值:", 1)
print("方差:", variance_val, "理论值:", 4)
```
输出结果如下:
```
最大值: 7.657583047600045 理论值: 5.82842712474619
最小值: -6.815280987768265 理论值: -2.8284271247461903
均值: 0.9882980817131503 理论值: 1
方差: 3.9662919802963765 理论值: 4
```
可以看出,生成的随机数的最大值、最小值、均值和方差与理论值比较接近。
阅读全文