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

การกระจายเบอร์นูลลีในโครงสร้างข้อมูล


การแจกแจงแบบเบอร์นูลลีเป็นการแจกแจงแบบแยกส่วนซึ่งมีผลลัพธ์ที่เป็นไปได้สองประการที่มีป้ายกำกับว่า x =0 และ x =1 x =1 คือความสำเร็จ และ x =0 คือความล้มเหลว ความสำเร็จเกิดขึ้นด้วยความน่าจะเป็น p และความล้มเหลวเกิดขึ้นด้วยความน่าจะเป็น q เป็น q =1 – p ดังนั้น

$$P\lgroup x\rgroup=\begin{cases}1-p\:for &x =0\\p\:for &x =0\end{cases}$$

นอกจากนี้ยังสามารถเขียนเป็น −

$$P\lgroup x\rgroup=p^{n}\lgroup1-p\rgroup^{1-n}$$

ตัวอย่าง

#include <iostream>
#include <random>
using namespace std;
int main(){
   const int nrolls=10000;
   default_random_engine generator;
   bernoulli_distribution distribution(0.7);
   int count=0; // count number of trues
   for (int i=0; i<nrolls; ++i)
      if (distribution(generator))
      count++;
   cout << "bernoulli_distribution (0.7) x 10000:" << endl;
   cout << "true: " << count << endl;
   cout << "false: " << nrolls-count << endl;
}

ผลลัพธ์

bernoulli_distribution (0.7) x 10000:
true:7024
false: 2976