Namespaces
Variants

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

From cppreference.net

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

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

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

目次

パラメータ

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

例外

2) SeedSeq std::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;
    // 符号なし整数でエンジンをシード
    gen.seed(1);
    std::cout << "after seed by 1: " << gen() << '\n';
    // 2つの符号なし整数でエンジンをシード
    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