一、二项分布
''' 随机数:模块为random模块---生成服从特定统计规律的随机数序列 1.二项分布(binomial):就是重复n次的伯努利实验,每次实验只有两种可能的结果,而且两种结果发生与否相互独立。 事件发生与否的概率在每次实验中都是保持不变的 ----numpy中实现:np.random.binomial(n,p,size)-->产生size个随机数,符合二项分布, 每个随机数来自n次尝试中成功的次数,其中每次尝试成功的概率为p ''' import numpy as np r = np.random.binomial(10, 0.8, 1) print(r) # 求:命中率0.8时,投10球进8球的概率、 # 投100000轮看看有多少轮进了10个球 r = np.random.binomial(10, 0.8, 100000) print(r[r == 8].size / r.size) print((r == 0).sum()/r.size) print((r == 1).sum()/r.size) print((r == 2).sum()/r.size) print((r == 3).sum()/r.size) print((r == 4).sum()/r.size) print((r == 5).sum()/r.size) print((r == 6).sum()/r.size) print((r == 7).sum()/r.size) print((r == 8).sum()/r.size) print((r == 9).sum()/r.size) print((r == 10).sum()/r.size) 输出结果: [8] 0.30189 0.0 1e-05 7e-05 0.00087 0.00557 0.02729 0.08732 0.20028 0.30189 0.26913 0.10757
二、其他
''' 正态分布(normal) ----numpy中实现: 标准正态分布:np.random.normal(size)-->随机生成一组符合标准正态分布的随机数,期望为0,标准差为1 一般正态分布:np.random.normal(μ,σ,size)-->随机生成一组服从正态分布的随机数,期望为μ,标准差为σ 平均分布(uniform): ----numpy中实现: np.random.uniform(n1,n2,size)-->产生size个随机数,服从平均分布[n1,n2] 超几何分布(hypergeometric): ----numpy中实现: np.random.hypergeometric(ngood,nbad,nsample,size)-->产生size个随机数,每个随机数为在总样本中随机抽取 nsample个样本后好样本的个数。所有样本由ngood个好样本和nbad个坏样本组成。 ''' import numpy as np # 超几何分布,7个好的3个坏的,摸3个,重复10次,返回好球的个数组成的数组 r = np.random.hypergeometric(7, 3, 3, 10) print(r) 运行结果: [2 1 3 3 2 2 3 3 2 2]