資料結構中的二項分佈


二項分佈是離散機率分佈 Pp(n | N),用於從 N 次伯努利試驗(有兩種可能的結果,標記為 x = 0 和 x = 1。x = 1 是成功,x = 0 是失敗。成功的機率是 p,失敗的機率是 q,q = 1 – p。)因此,二項分佈可以寫成

$$P_{p}\lgroup n\:\arrowvert\ N\rgroup=\left(\begin{array}{c}N\ n\end{array}\right) p^{n}\lgroup1-p\rgroup^{N-n}$$

示例

 即時演示

#include <iostream>
#include <random>
using namespace std;
int main(){
   const int nrolls = 10000; // number of rolls
   const int nstars = 100; // maximum number of stars to distribute
   default_random_engine generator;
   binomial_distribution<int> distribution(9,0.5);
   int p[10]={};
   for (int i=0; i<nrolls; ++i) {
      int number = distribution(generator);
      p[number]++;
   }
   cout << "binomial_distribution (9,0.5):" << endl;
   for (int i=0; i<10; ++i)
      cout << i << ": " << string(p[i]*nstars/nrolls,'*') << endl;

}

輸出

0:
1: *
2: ******
3: ***************
4: *************************
5: ************************
6: ****************
7: *******
8: *
9:

更新時間: 2019-08-27

335 次瀏覽

開啟您的職業生涯

完成本課程獲得認證

開始學習
廣告
© . All rights reserved.