Trotz gleichem seed variierende Ergebnisse?
-
Ich führe hier ein paar Berechnungen mit Zufallszahlen durch und verwende für die Berechnung des Gesamtergebnisses zwei Zufallsgeneratoren. Beide initialisiere immer mit dem selben seed, also z.B.
generator g1(100); generator g2(200);
Als Effekt habe ich in Matlab UND C++, dass die Ergebnisse jetzt immer sehr ähnlich, aber durch leicht unterschiedlich sind. Beispielergebnisse C++:
0.131075
0.130100
0.126010
0.132990
und selten sowas wie
0.04592In Matlab genauso. Sind Zufallsgeneratoren intern immer noch von der Zeit abhängig, die verstreicht? Wenn mein Programm also vom Betriebssystem unterbrochen und später fortgesetzt wird, verursacht das diese Unterschiede von Programmlauf zu Programmlauf?
-
Kommt auf deinen Zufallszahlen generator an, oder? Meiner gibt immer die selben Ergebnisse.
-
Es wäre sehr ungewöhnlich, wenn ein Zufallsgenerator mit einem seed noch einen nichtdeterministischen Anteil hätte. Da wäre ja der ganze Witz mit dem Seed dahin. Mir wäre kein einziger solcher Generator bekannt. Klingt eher nach undefiniertem Verhalten durch Programmierfehler oder nach Logikfehler bei der Programmierung (du lässt vielleicht doch irgendwo mal unabsichtlich die Zeit einfließen).
Wäre es möglich, dass du den C++-Code hier zeigst oder ist das zu lang?
-
riecht nach multithreading.