#include <random> // ベルヌーイ分布 class bernoulli_distribution; // 二項分布 template <class IntType = int> class binomial_distribution; // 幾何分布 template <class IntType = int> class geometric_distribution; // 負の二項分布 template <class IntType = int> class negative_binomial_distribution;
#include <iostream> #include <random> using namespace std; int main() { // 乱数の初期設定 random_device sd; // 予測不能な乱数生成器(class),初期設定のために使用 mt19937 rnd(sd()); // 乱数生成期の定義とその初期設定 // ベルヌーイ分布(成功確率 : 0.7) bernoulli_distribution bernoulli(0.7); // コンストラクタ cout << "ベルヌーイ分布 : 母数 p : 0.7\n"; for (int i1 = 0; i1 < 10; i1++) cout << " " << bernoulli(rnd) << endl; // 二項分布(成功確率 0.7 の試行を 20 回行ったときの成功回数) binomial_distribution<> binomial(20, 0.7); // コンストラクタ cout << "二項分布 : 母数 p : 0.7,20 回行ったときの成功回数\n"; for (int i1 = 0; i1 < 5; i1++) cout << " " << binomial(rnd) << endl; // 幾何分布(成功確率 0.3 の試行において,初めて成功するまでに何回失敗したか) geometric_distribution<> geometric(0.3); // コンストラクタ cout << "幾何分布 : 母数 p : 0.3,初めて成功するまでに何回失敗したか\n"; for (int i1 = 0; i1 < 5; i1++) cout << " " << geometric(rnd) << endl; // 負の二項分布(成功確率 0.3 の試行において,5 回成功するまでに失敗した回数) negative_binomial_distribution<> negative(1, 0.3); // コンストラクタ cout << "負の二項分布 : 母数 p : 0.3,1 回成功するまでに失敗した回数\n"; for (int i1 = 0; i1 < 5; i1++) cout << " " << negative(rnd) << endl; return 0; }
ベルヌーイ分布 : 母数 p : 0.7 0 0 1 1 0 1 1 0 1 1 二項分布 : 母数 p : 0.7,20 回行ったときの成功回数 13 14 16 12 14 幾何分布 : 母数 p : 0.3,初めて成功するまでに何回失敗したか 10 0 1 5 2 負の二項分布 : 母数 p : 0.3,1 回成功するまでに失敗した回数 5 1 0 7 2
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |