名前空間
変種
操作

std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::seed

From cppreference.com
 
 
 
 
 
void seed( result_type value = default_seed );
(1) (C++11以降)
template< class SeedSeq >
void seed( SeedSeq& seq );
(2) (C++11以降)

乱数エンジンの状態を設定します。

1) 状態が設定された直後、*this == std::mersenne_twister_engine(value)true になります。
2) 状態が設定された直後、*this == std::mersenne_twister_engine(seq)true になります。

目次

[編集] パラメータ

value - 状態を設定するために使用するシード値
seq - 状態を設定するために使用するシードシーケンス

[編集] 例外

2) SeedSeqstd::seed_seq でない場合、seq.generate の呼び出しによってスローされる例外をスローします。

[編集] 計算量

1) std::mersenne_twister_engine(value) と同じです。
2) std::mersenne_twister_engine(seq) と同じです。

欠陥レポート

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 2181 C++11 オーバーロード (2) は、seq.generate の呼び出しで例外が発生しても例外をスローしません。 例外を伝播させます。

[編集] 関連項目

エンジンを構築します。
(public member function) [編集]

[編集]

#include <iostream>
#include <random>
 
int main()
{
    std::mt19937 gen;
 
    // Seed the engine with an unsigned int
    gen.seed(1);
    std::cout << "after seed by 1: " << gen() << '\n';
 
    // Seed the engine with two unsigned ints
    std::seed_seq sseq{1, 2};
    gen.seed(sseq);
    std::cout << "after seed by {1,2}: " << gen() << '\n';
}

実行結果の例

after seed by 1: 1791095845
after seed by {1,2}: 3127717181
English 日本語 中文(简体) 中文(繁體)