std::seed_seq
From cppreference.com
| ヘッダー <random> で定義 |
||
| class seed_seq; |
(C++11以降) | |
std::seed_seq は、整数値のシーケンスを消費し、消費されたデータに基づいて要求された数の32ビット符号なし整数値を生成します。生成される値は、消費された値が近い場合でも、32ビットの全範囲にわたって分布します。
これは、少数のシードまたは分布の悪い初期シードシーケンスが与えられた場合に、多数の乱数エンジンをシードしたり、多くのエントロピーを必要とするジェネレータをシードしたりする方法を提供します。
std::seed_seq は、SeedSequence の要件を満たします。
目次 |
[編集] ネストされた型
| 型 | 定義 |
result_type
|
std::uint_least32_t |
[編集] データメンバー
| メンバ | 説明 |
std::vector<result_type> v |
基となるシードシーケンス (説明用のメンバオブジェクト*) |
[編集] メンバ関数
std::seed_seq オブジェクトを構築し、シードします。(public member function) | |
| operator= [削除] |
std::seed_seq は代入できません。(public member function) |
| バイアスを除去した、均等に分布した32ビット値を計算します。 (public member function) | |
| 格納されている32ビット値の数を取得します。 (public member function) | |
| 格納されているすべての32ビット値をコピーします。 (public member function) |
[編集] 例
このコードを実行
#include <cstdint> #include <iostream> #include <random> int main() { std::seed_seq seq{1, 2, 3, 4, 5}; std::vector<std::uint32_t> seeds(10); seq.generate(seeds.begin(), seeds.end()); for (std::uint32_t n : seeds) std::cout << n << '\n'; }
実行結果の例
4204997637 4246533866 1856049002 1129615051 690460811 1075771511 46783058 3904109078 1534123438 1495905678