negative_binomial_distribution
random[meta header]
std[meta namespace]
class template[meta id-type]
cpp11[meta cpp]
namespace std {
template <class IntType = int >
class negative_binomial_distribution ;
}
negative_binomial_distribution
は、離散確率分布の一種である、負の二項分布を表すクラスである。
二項分布(binomial_distribution
が「確率pで成功する事象をt回施行し、成功回数を取得する」のに対し、負の二項分布は「確率pで成功する事象がk回成功するまでに失敗した回数を取得する」ということを行う。
負の二項分布は、実装によって「k回成功するまでに施行した回数を取得する」ものと、「k回成功するまでに失敗した回数を取得する」もの、2つのバリエーションが存在する。std::negative_binomial_distribution
クラスは後者である。
テンプレートパラメータは、以下を意味する:
名前
説明
対応バージョン
(constructor)
コンストラクタ
C++11
~negative_binomial_distribution() = default;
デストラクタ
C++11
reset
状態をリセットする
C++11
名前
説明
対応バージョン
k
目標とする成功回数を取得する
C++11
p
確率を取得する
C++11
param
分布のパラメータを取得/設定する
C++11
min
生成し得る値の下限を取得する
C++11
max
生成し得る値の上限を取得する
C++11
型
説明
対応バージョン
result_type
乱数生成結果の整数型。IntType
C++11
param_type
分布パラメータの型。未規定。
C++11
#include < iostream>
#include < random>
int main ()
{
std::random_device seed_gen;
std::default_random_engine engine (seed_gen ());
// 成功確率0.5の事象を5回成功させる
std::negative_binomial_distribution<> dist (5 , 0.5 );
// 5回成功するまでに失敗した回数を取得
int result = dist (engine);
std::cout << result << std::endl;
}
std::negative_binomial_distribution[color ff0000]
dist(engine)[link negative_binomial_distribution/op_call.md]