Biến ngẫu nhiên nhị thức mô tả số lần thành công trong n thử nghiệm độc lập, mỗi thử nghiệm xác suất thành công p. Công thức xác suất P(X=k) = C(n,k) * p^k * (1-p)^(n-k). Kỳ vọng E[X]=np, phương sai Var[X]=np(1-p).
Tính xác suất nhị thức
Tính tổ hợp C(n,k) hiệu quả (chia dần khi nhân). Tính lũy thừa pow(). Áp dụng công thức.
Ví dụ minh họa
#include <iostream>
#include <cmath>
using namespace std;
int combination(int n, int r) {
if (r > n/2) r = n - r;
int ans = 1;
for (int i = 1; i <= r; i++) {
ans *= (n - r + i);
ans /= i;
}
return ans;
}
double binomialProb(int n, int k, double p) {
return combination(n, k) * pow(p, k) * pow(1-p, n-k);
}
int main() {
int n = 10, k = 5;
double p = 1.0/3;
double prob = binomialProb(n, k, p);
cout << "P(X=" << k << ") = " << prob;
return 0;
}
Kết quả
P(X=5) = 0.136565