Namespaces
Variants

std:: seed_seq

From cppreference.net
定義先ヘッダ <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=
[deleted]
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