名前空間
変種
操作

std::discrete_distribution::discrete_distribution

提供: cppreference.com
 
 
 
擬似乱数生成
一様ランダムビットジェネレータ
エンジンとエンジンアダプタ
非決定的なジェネレータ
分布
一様分布
ベルヌーイ分布
ポアソン分布
正規分布
標本分布
シードシーケンス
(C++11)
C のライブラリ
 
 
discrete_distribution();
(1) (C++11およびそれ以降)
template< class InputIt >
discrete_distribution( InputIt first, InputIt last );
(2) (C++11およびそれ以降)
discrete_distribution( std::initializer_list<double> weights );
(3) (C++11およびそれ以降)
template< class UnaryOperation >

discrete_distribution( std::size_t count, double xmin, double xmax,

                       UnaryOperation unary_op );
(4) (C++11およびそれ以降)
explicit discrete_distribution( const param_type& params );
(5) (C++11およびそれ以降)

新しい分布オブジェクトを構築します。

1) デフォルトコンストラクタ。 単一の重み p={1} を持つ分布を構築します。 この分布は常に 0 を生成します。

2) 範囲 [first, last) 内の重みを持つ分布を構築します。 first == last の場合、効果はデフォルトコンストラクタのときと同じです。

3) weights 内の重みを持つ分布を構築します。 実質的に discrete_distribution(weights.begin(), weights.end()) を呼びます。

4) 関数 unary_op を使用して生成された count 個の重みを持つ分布を構築します。 それぞれの重みは w
i
= unary_op(xmin + δ/2 + i · δ)
になります。 ただし δ =
(xmax − xmin)
count
であり、 i ∈ {0, ..., count−1} です。 xmin および xmaxδ > 0 であるように選ばなければなりません。 count == 0 の場合、効果はデフォルトコンストラクタのときと同じです。

5) 分布のパラメータとして params を使用して分布を構築します。

[編集] 引数

first, last - 重みとして使用する数値を定義する要素の範囲。 InputIterator の参照する要素の型は double に変換可能でなければなりません
weights - 重みを格納している初期化子リスト
unary_op - 適用される単項演算関数オブジェクト。

この関数のシグネチャは以下と同等であるべきです。

 Ret fun(const Type &a);

シグネチャが const & を持つ必要はありません。
Typedouble 型のオブジェクトの逆参照から暗黙に変換可能なものでなければなりません。 型 Retdouble 型のオブジェクトの逆参照に代入可能なものでなければなりません。 ​

params - 分布のパラメータセット
型の要件
-
InputItInputIterator の要件を満たさなければなりません。