C++ 中的二项式随机变量

c++server side programmingprogramming

随机变量是那些作为过程结果的结果的变量,这些结果有可能导致多种结果。例如,表示抛硬币结果是正面还是反面的变量就是一个随机变量。

二项式随机变量是一种特殊类型的随机变量,其值与事件中具有固定结果概率的事件相关。

二项式随机变量具有某些属性,使其变得特殊。这些是变量成为二项式随机变量 − 的必需条件。

  • 结果总数是固定的。

  • 试验结果要么是真要么是假,没有中间结果。

  • 每条试验发生的概率都相同。

  • 没有两条试验相互依赖。

二项式随机变量概率

结果成功的概率由公式 − 给出。

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

相关文章