Mersenne Twister kanste vergessen, zu langsam.
Aber zum Angang machst du mal was anders
Erzeuge eine 323Bit Zufallszahl. Diese global speichern. Bei der Berechnung in deinen Funktionen dann diese Funktion
Delphi-Quellcode:
var
Zufall: Caridnal = 0;
function RandomBit: Boolean;
begin
Zufall := Zufall shr 1 or Zufall shl 31;
Result := Odd(Zufall);
end;
initialization
Randomize;
Zufall := Random(MaxInt);
end.
Dies produziert zwar immer die gleiche Sequenz aus 32 Bits, aber dies spielt zur Einschätzung, um wieviel du durch die Optimierung deines RNGs an Zeit einsparen könntest, keine Rolle.
Im alten
DEC war ein TRandom_LFSR mit Perioden von 2^32-1 bis 2^2032-1 bei dem der LFSR 128 mit Periode 2^128-1 ungefähr 43Mb/Sec auf einem P4 1.5GHz lief. Du könntest dir aus dem Source dieses LFSR extrahieren.
Gruß Hagen