std:: bernoulli_distribution
From cppreference.net
|
定義先ヘッダ
<random>
|
||
|
class
bernoulli_distribution
;
|
(C++11以降) | |
離散確率関数に従ってランダムなブール値を生成します。 true の確率は
-
P(b|p) =
⎧
⎨
⎩ p , もし b が true の場合
1 − p , もし b が false の場合
std::bernoulli_distribution
は
RandomNumberDistribution
の要件を満たす。
目次 |
、
、
メンバー型
| メンバー型 | 定義 |
result_type
(C++11)
|
bool |
param_type
(C++11)
|
パラメータセットの型。 RandomNumberDistribution を参照。 |
メンバー関数
|
(C++11)
|
新しい分布を構築する
(public member function) |
|
(C++11)
|
分布の内部状態をリセットする
(public member function) |
生成 |
|
|
(C++11)
|
分布内の次の乱数を生成する
(public member function) |
特性 |
|
|
(C++11)
|
p
分布パラメータ(
true
を生成する確率)を返す
(public member function) |
|
(C++11)
|
分布パラメータオブジェクトを取得または設定する
(public member function) |
|
(C++11)
|
生成される可能性のある最小値を返す
(public member function) |
|
(C++11)
|
生成される可能性のある最大値を返す
(public member function) |
非メンバー関数
|
(C++11)
(C++11)
(removed in C++20)
|
二つの分布オブジェクトを比較する
(関数) |
|
(C++11)
|
擬似乱数分布に対するストリーム入出力を実行する
(関数テンプレート) |
例
このコードを実行
#include <iomanip> #include <iostream> #include <map> #include <random> #include <string> int main() { std::random_device rd; std::mt19937 gen(rd()); // "true" を 1/4 の確率で生成 // "false" を 3/4 の確率で生成 std::bernoulli_distribution d(0.25); std::map<bool, int> hist; for (int n = 0; n < 10000; ++n) ++hist[d(gen)]; std::cout << std::boolalpha; for (auto const& [key, value] : hist) std::cout << std::setw(5) << key << ' ' << std::string(value / 500, '*') << '\n'; }
出力例:
false *************** true ****
外部リンク
| Weisstein, Eric W. 「ベルヌーイ分布」 MathWorld — Wolfram Web リソースより |