Autor Beitrag
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Fr 01.02.08 09:42 
Also, in deiner Formel oben haste dich verschrieben, ein LCG hat die Formel:

ausblenden Quelltext
1:
x[n] = ( a * x[n-1] + c ) mod m					

Hierbei wird die maximale Periode durch M beschränkt, weil ja maximal die Zahlen von 0..M-1 vorkommen können! Die anderen Konstanten A und C müssen außerdem bestimmte Bedingungen erfüllen, damit eine maximale Periode ereicht wird.
Ich bin mir nicht sicher, aber A muss relativ Prim zu M sein und C ein vielfaches alles Primfaktoren von M plus 1! Es gibt aber glaube ich noch andere Punkte die berücksichtigt werden müssen! Der Startwert x[0] ist eig relativ egal, weil er "nur" festlegt, wo in der Periode gestartet wird!

Hier könnte ich mir vorstellen, dass der Zufallsgenerator anders eingesetzt, nähmlich in der Form:

ausblenden Quelltext
1:
2:
x[n] = ( a * x[n-1] + c ) mod m;
Output = x[n] mod n;

Hier ist N die in Random() angegebene Zahl, zum festlegen der Menge der Zahlen für den Output! Ist M hier eine Primzahl, so lassen sich A und C leicht finden und bei einem großen M bekommt man auch eine lange Periode! Der Output ist dann durch N nur noch auf eine bestimmte Menge von Zahlen festgelegt.

Damit ist das errechnen von A und C nicht sehr viel schwerer wie bei einem üblichen LCG!


MfG Sirke
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 617
Erhaltene Danke: 364

W7
Delphi 6 pro
BeitragVerfasst: Fr 01.02.08 13:35 
Moin,

im Anhang sind noch Zusatzinformationen (doc), das wesentliche hat schon Sirke gepostet.

Als Beispiel ist noch eine Demo dabei.

Gruß
Fiete
Einloggen, um Attachments anzusehen!
_________________
Fietes Gesetz: use your brain (THINK)