std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>:: seed
From de.cppreference.net
<
cpp
|
numeric
|
random
|
mersenne twister engine
|
void
seed
(
result_type value
=
default_seed
)
;
|
(1) | (seit C++11) |
|
template
<
class
SeedSeq
>
void seed ( SeedSeq & seq ) ; |
(2) | (seit C++11) |
Setzt den Zustand der Zufallszahlen-Engine.
1)
Unmittelbar nachdem der Zustand gesetzt wurde,
*
this
==
std::
mersenne_twister_engine
(
value
)
ist
true
.
2)
Unmittelbar nachdem der Zustand gesetzt wurde,
*
this
==
std::
mersenne_twister_engine
(
seq
)
ist
true
.
Inhaltsverzeichnis |
Parameter
| value | - | Startwert zur Initialisierung des Zustands |
| seq | - | Startsequenz zur Initialisierung des Zustands |
Ausnahmen
2)
Wenn
SeedSeq
kein
std::seed_seq
ist, werden die Ausnahmen ausgelöst, die durch den
seq.generate
-Aufruf geworfen werden.
Komplexität
1)
Gleich wie
std::
mersenne_twister_engine
(
value
)
.
2)
Gleich wie
std::
mersenne_twister_engine
(
seq
)
.
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2181 | C++11 |
Überladung
(
2
)
würde nicht werfen, selbst wenn der
seq.generate
Aufruf wirft
|
leitet die Exception weiter |
Siehe auch
|
Konstruiert die Engine
(öffentliche Member-Funktion) |
Beispiel
Diesen Code ausführen
#include <iostream> #include <random> int main() { std::mt19937 gen; // Den Engine mit einem unsigned int seeden gen.seed(1); std::cout << "after seed by 1: " << gen() << '\n'; // Den Engine mit zwei unsigned ints seeden std::seed_seq sseq{1, 2}; gen.seed(sseq); std::cout << "after seed by {1,2}: " << gen() << '\n'; }
Mögliche Ausgabe:
after seed by 1: 1791095845
after seed by {1,2}: 3127717181