Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Binomial Distribution ในโครงสร้างข้อมูล


นิยาม

Binomial Distribution เป็น Discrete Probability Distribution Pₚ(n | N) ของการได้ n Success จาก N Bernoulli Trials (มี 2 ผลลัพธ์: x=0 Failure, x=1 Success โอกาส Success = p, Failure = q = 1-p)

สูตร

$$P_{p}(n|N) = \binom{N}{n} p^{n} (1-p)^{N-n}$$

ตัวอย่าง C++

#include <iostream>
#include <random>
using namespace std;

int main() {
    const int nrolls = 10000;
    const int nstars = 100;
    default_random_engine generator;
    binomial_distribution<int> distribution(9, 0.5);
    int p[10] = {};
    for (int i = 0; i < nrolls; ++i) {
        int number = distribution(generator);
        p[number]++;
    }
    cout << "binomial_distribution (9,0.5):" << endl;
    for (int i = 0; i < 10; ++i)
        cout << i << ": " << string(p[i] * nstars / nrolls, '*') << endl;
}

Output

0: 
1: *
2: ******
3: ***************
4: *************************
5: ************************
6: ****************
7: *******
8: *
9: