Ich möchte ein kleines (schnelles) C++ - Programm schreiben, das im Wesentlichen "erkennt", dass der gesamte Zeitraum einer std::minstd_rand0
-Engine verbraucht wurde. Mit anderen Worten möchte ich feststellen, wann sich die Sequenz wiederholt (und auch die Zeit messen, die für die Wiederholung der Sequenz benötigt wird). Die Zielverteilung interessiert mich nicht (sie kann einheitlich sein).Wie zu erkennen, dass der gesamte Zeitraum von C++ Random-Engine verbraucht wurde
Irgendwelche Ideen, wie ich vorgehen sollte? Eine Option, die ich in Erwägung zog, ist die Erstellung von zwei Variablen. In der ersten würde ich sagen, dass die 10000 ersten Pseudozufallsvariablen von std:minstd_rand0
zurückgegeben werden. Ich würde dann fortfahren, indem ich die anderen std::array
mit aufeinanderfolgenden Blöcken von 10000 Variablen füllte und den Inhalt der 2 Felder nach jedem Durchgang von 10000 Variablen vergleiche. Ich würde denken, dass die gesamte Periode vollzogen wurde, sobald die 2 Arrays gleich sind.
Wäre dieser Ansatz sinnvoll?
Oft wird die genaue Periode des Generators bekannt und in der Dokumentation angegeben, damit Sie dort nachschlagen können. –
Wenn der Zeitraum kein Vielfaches von 10000 ist, gibt Ihr Algorithmus ein Vielfaches des Zeitraums zurück. –
Was versuchst du wirklich? Was ist dein Ziel? –