数据结构中的伯努利分布

伯努利分布是一个离散分布,具有两个可能的结果,分别用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