Forum: Mikrocontroller und Digitale Elektronik Was ist das für ein Zufallsgenerator?


von Karl K. (karl2go)


Lesenswert?

Ich habe hier vor Jahren mal einen Zufallsgenerator programmiert, und 
finde leider nichts mehr dazu, was das für ein Typ ist.

Er hat Ähnlichkeit mit einem Linearen Kongruenzgenerator.
1
function random() : uint16;
2
const
3
  rndmul = 80;
4
  rndseed = 7954;
5
  rndval : uint16 = rndseed;
6
begin
7
  rndval := rndmul * (rndval and $00FF) + (rndval shr 8);
8
  random := rndval mod 256;
9
end;

Der entscheidende Unterschied zu den üblichen LGK ist, dass hier ein 
Teil des Wertes am Ende nochmal dazuaddiert wird, womit offenbar das 
Problem der Hyperebenenbildung erheblich gemindert wird.

Zumindest schneidet dieser Generator im Spektraltest erstaunlich gut ab, 
wenn man seine Einfachheit berücksichtigt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.