名前空間
変種
操作

std::seed_seq

From cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
 
ヘッダー <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
English 日本語 中文(简体) 中文(繁體)