Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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