一、二項分布
''' 隨機數:模塊為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]