版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rosefun96/article/details/86435812
1 理论
2 实践
均匀分布生成一个标准正态分布
import numpy as np
import matplotlib.pyplot as plt
#-1~1 uniform
u = 2*np.random.uniform(size=30000)-1
normal_rv = [300 * np.mean(2*np.random.uniform(size=30000)-1) for i in range(10000)]
print(np.mean(normal_rv))
print(np.std(normal_rv))
plt.hist(u, bins = 50)
plt.show()
plt.hist(normal_rv,bins = 100)
plt.show()
其他,两个均匀分布相加减,概率密度曲线是梯形;两个正态分布相加减,仍是正态分布。
#两个均匀分布相乘
u1 = np.random.uniform(size = 300000)
u2 = 2*np.random.uniform(size = 300000) - 1
#u = u1*u2
#u = u1+u2
u = u2 - u1
plt.hist(u, bins = 500)
plt.show()
#正态分布
s1 = np.random.normal(0, 1, 4000 )
s2 = np.random.normal(5, 2, 4000)
s = s1+s2
plt.hist(s1, bins = 200)
plt.show()
plt.hist(s2, bins = 200)
plt.show()
plt.hist(s, bins = 200)
plt.show()
reference: