名前空間
変種
操作

std::seed_seq

提供: cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
擬似乱数生成
一様ランダムビットジェネレータ
エンジンとエンジンアダプタ
非決定的なジェネレータ
分布
一様分布
ベルヌーイ分布
ポアソン分布
正規分布
標本分布
シードシーケンス
seed_seq
(C++11)
C のライブラリ
 
 
ヘッダ <random> で定義
class seed_seq;
(C++11以上)

std::seed_seq は一連の整数値データを消費し、その消費したデータを基にして要求された個数の符号なし整数値 i (0 ≤ i < 232
) を生成します。 生成される値は、消費された値が近くても、32ビットの範囲全体に渡って分布されます。

これは、小さなシード、または不十分に分布されている初期シードシーケンスから、乱数エンジンの大きな数をシードするための、または大きなエントロピーを要求するジェネレータをシードするための方法を提供します。

std::seed_seqSeedSequence の要件をすべて満たします。

[編集] メンバ型

メンバ型 定義
result_type std::uint_least32_t

[編集] メンバ関数

std::seed_seq オブジェクトを構築してシードします
(パブリックメンバ関数)
operator=
(deleted)
コピー代入可能ではありません
(パブリックメンバ関数)
バイアスが除去された、均等に分布する32ビット値を計算します
(パブリックメンバ関数)
std::seed_seq に格納されている32ビット値の数を取得します
(パブリックメンバ関数)
std::seed_seq に格納されている32ビット値を取得します
(パブリックメンバ関数)

[編集]

#include <random>
#include <cstdint>
#include <iostream>
 
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