几何分布是n = 0、1、2,...的离散概率分布。具有概率密度函数。
$$P \ lgroup n \ rgroup = p \ lgroup1-p \ rgroup ^ {n} $$
分布函数为-
$$D \ lgroup n \ rgroup = \ displaystyle \ sum \ limits_ {i = 0} ^ n P \ lgroup i \ rgroup = 1-q ^ {n + 1} $$
#include <iostream>
#include <random>
using namespace std;
int main(){
const int nrolls = 10000; // number of rolls
const int nstars = 100; // maximum number of stars to distribute
default_random_engine generator;
geometric_distribution<int> distribution(0.3);
int p[10]={};
for (int i=0; i<nrolls; ++i) {
int number = distribution(generator);
if (number<10)
p[number]++;
}
cout << "Geometric_distribution (0.3):" << endl;
for (int i=0; i<10; ++i)
cout << i << ": " << string(p[i]*nstars/nrolls,'*') << endl;
}输出结果
0: ***************************** 1: ******************** 2: *************** 3: ********** 4: ******* 5: **** 6: *** 7: ** 8: * 9: *