名前付き要件:UniformRandomBitGenerator
提供: cppreference.com
一様ランダムビットジェネレータは有り得る結果の範囲内の値それぞれが (理想的には) 等しい確率を持つような符号なし整数値を返す関数オブジェクトです。
一様ランダムビットジェネレータは乱数ジェネレータとして使用されることは意図されていません。 これらはランダムビット (効率のためにバルク生成されます) のソースとして使用されます。 乱数 (形式的にはランダム変量) を取得するために任意の一様ランダムビットジェネレータを任意の乱数分布に差し込むことができます。
[編集]要件
以下の内容を満たす場合、型 G
は UniformRandomBitGenerator を満たします。
G::result_type
によって表される型T
G
型の値g
が与えられたとき、以下の式が有効でなければならず、指定された効果を持たなければなりません。
式 | 戻り値の型 | 要件 |
---|---|---|
G::result_type | T | T が符号なし整数型である。 |
G::min() | T | G の operator() か返す可能性のある最も小さな値を返す。 その値は G::max() より厳密に小さい。 |
G::max() | T | G の operator() が返す可能性のある最も大きな値を返す。 その値は G::min() より厳密に大きい。 |
g() | T | 閉区間 [G::min(), G::max()] 内の値を返す。 償却定数時間の計算量を持つ。 |
[編集]ノート
すべての RandomNumberEngine はこの要件を満たします。
[編集]標準ライブラリ
以下の標準ライブラリの機能は UniformRandomBitGenerator 型を期待します。
(C++17未満)(C++11) | 指定範囲の要素をランダムに並べ替えます (関数テンプレート) |
(C++11) | [0, 1) 内に一様に分布した、与えられた精度における実数値 (関数テンプレート) |
(C++11) | 範囲内に一様に分布した整数値を生成します (クラステンプレート) |
(C++11) | 範囲内に一様に分布した実数値を生成します (クラステンプレート) |
その他のすべての乱数分布 |
以下の標準ライブラリの機能は RandomNumberEngine を追加で満たさずに UniformRandomBitGenerator を満たします。
(C++11) | ハードウェアエントロピーソースを使用する非決定的な乱数生成器 (クラス) |