Zitat Zitat von Onkel Dagobert Beitrag anzeigen
Wirklich sehr einfach, und sowas von einleuchtend . Lest mal den Diskussionsbeitrag zu dem Thema.
Zugegeben ich habe mir die Seite nicht im Detail angeschaut sondern nur den Code gesehen und gedacht dass läßt sich sicher in der S7 implementieren
Code:
static uint32_t Q[1038];
static uint32_t c = 123;

uint32_t MWC1038() {
    static uint32_t i = 1037;
    uint64_t t;

    t = (611376378ULL * Q[i]) + c;
    c = t >> 32;

    if (--i != 0)
        return (Q[i] = t);

    i = 1037;
    return (Q[0] = t);
}
Aber selbst die "richtigere" Lösung dauf der englischen Wiki Seite sollte sich machen lassen. Und wenn dir das nicht gefällt dann kannst du dir einen anderen Algorithmus aus der Liste aussuchen. Auf jeden Fall würde ich auf bekannte Algorithmen zurück greifen. Dann lernen die Leute dass man lieber auf was Bewährtes zurückgreift anstatt sich selber was auszudenken.

Zitat Zitat von Onkel Dagobert Beitrag anzeigen
Der gute Mensch soll sich hüten vor den Mathematikern, hat mal einer gesagt. Recht hatte er.
Ich denke dass viele Programmierer sich vor anderen (speziell "wissenschaftlichen") Fachgebieten hüten weil Sie glauben Sie können es eh selber besser. Meiner Meinung nach ist das schlechter Stil in der Arbeit. "Lieber gut geklaut als schlecht erfunden" wäre imho das bessere Motto

Zitat Zitat von Onkel Dagobert Beitrag anzeigen
Dieser Gedanke ist natürlich richtig. Allerdings bezweifle ich dass tatsächlich ein erkennbares Muster entstehen wird. Einem Zähler, der über 23 Tage oder auch nur über einer Sekunde die Millisekunden zählt, stehen Operationen gegenüber, die in µs oder gar in ns zyklisch ausgeführt werden (OB1-Zyklus). Von dem Azubi, der sich seinen Daumen an einem Taster platt drückt mal ganz zu schweigen. Zugegeben, mathematisch ist es als "Zufallsgenerator" keinesfalls korrekt, aber in vielen Fällen sicherlich ausreichend.
Naja, ich weiß nicht genau was du meinst.