Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Biến ngẫu nhiên nhị thức (Binomial Random Variables) C++

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