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