最終更新日時:
が更新

履歴 編集

class template
<random>

std::geometric_distribution(C++11)

namespace std {
  template <class IntType = int>
  class geometric_distribution;
}

概要

geometric_distributionは、離散確率分布の一種である幾何分布を表すクラスである。
このクラスは、ベルヌーイ分布(bernoulli_distribution)を施行し、初めて成功するまでに何回失敗したかを取得する。これは、negative_binomial_distribution<IntType>(1, p)と同じである。

幾何分布は、無記憶性(memoryless)という性質を持つ。これにより、施行の結果が次の結果(確率)に影響せず、それぞれが独立した結果となる。

幾何分布は、以下のような用途で使用できる:

  • くじ引きを行い、当たりが出るまでに引いた回数を求める
  • 信頼性の低い部品を製造するために失敗した個数を求める

テンプレートパラメータは、以下を意味する:

  • IntType : 成功回を表す整数型。

メンバ関数

構築・リセット

名前 説明 対応バージョン
(constructor) コンストラクタ C++11
~geometric_distribution() = default; デストラクタ C++11
reset 状態をリセットする C++11

生成

名前 説明 対応バージョン
operator() 乱数を生成する C++11

プロパティ

名前 説明 対応バージョン
p 確率を取得する C++11
param 分布のパラメータを取得/設定する C++11
min 生成し得る値の下限を取得する C++11
max 生成し得る値の上限を取得する C++11

メンバ型

説明 対応バージョン
result_type 乱数生成結果の整数型。IntType C++11
param_type 分布パラメータの型。未規定。 C++11

非メンバ関数

名前 説明 対応バージョン
operator== 等値比較 C++11
operator!= 非等値比較 C++11
operator<< ストリームへの出力 C++11
operator>> ストリームからの入力 C++11

#include <iostream>
#include <random>

int main()
{
  std::random_device seed_gen;
  std::default_random_engine engine(seed_gen());

  // 成功確率0.5の事象を、成功するまで施行する
  std::geometric_distribution<> dist(0.5);

  // 成功するまでに、何回失敗したかを取得
  int result = dist(engine);
  std::cout << result << std::endl;
}

出力例

0

バージョン

言語

  • C++11

処理系

参照