Was ist das für ein Zufallsgenerator?

OP #5536016
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren