C++ 中的二項式隨機變數


隨機變數是那些變數,它們是一個程序的可能產生多個結果的輸出的結果。例如,拋硬幣後顯示正面或反面作為結果的變數是一個隨機變數。

二項式隨機變數是一種特殊的隨機變數,其值與一個事件相關,該事件在一個事件中具有固定的結果機率。

二項式隨機變數具有一些讓它變得特別的特質。變數成為二項式隨機變數的必要條件有 −

  • 結果的總數是固定的。

  • 試驗的結果只能是真或假,兩者之間不存在中間狀態。

  • 每次試驗發生的機率是相同的。

  • 任何兩項試驗都是相互獨立的。

二項式隨機變數機率

結果成功的機率由以下公式給出 −

P (x= k ) = n! / k! (n-k)! * pk * (1-p)n-k

基於二項式隨機變數的此機率,樣本空間中變數發生的次數。

E[X] = np

成功的方差由 Var[X] = np (1-p)給出

示例

 現場演示

#include <iostream>
#include <cmath>
using namespace std;
int combination(int n, int r){
   if (r > n / 2)
   r = n - r;
   int answer = 1;
   for (int i = 1; i <= r; i++) {
      answer *= (n - r + i);
      answer /= i;
   }
   return answer;
}
float randombinomialProbability(int n, int k, float p){
   return combination(n, k)*pow(p, k)*pow(1 - p, n - k);
}
int main(){
   int n = 10;
   int k = 5;
   float p = 1.0 / 3;
   float binomialRandomVariable = randombinomialProbability(n, k, p);
   cout<<"Probability of "<<k;
   cout<<" heads when a coin is tossed "<< n;
   cout<<" times where probability of each head is "<<p;
   cout<<" is = "<<binomialRandomVariable<<endl;
}

輸出

Probability of 5 heads when a coin is tossed 10 times where probability of each head is 0.333333 is = 0.136565

更新於: 2020 年 1 月 3 日

380 次瀏覽

開始你的 職業生涯

完成課程即可獲得認證

開始
廣告