hallo greedy,
ich hab zwar immer noch keinen plan davon, was du auswerten willst, hätt aber 'ne kleine änderung im quellcode vorzuschlagen..
Delphi-Quellcode:
TUpper =
class
// ...
FRes64:
array of cardinal;
//<<-- reicht doch aus, und kann der rechner besser verarbeiten
end;
procedure TUpper.Generate(Cnt: Int64);
var Akt, Rnd: Byte;
C, Len: cardinal;
//<<-- reicht doch aus, und kann der rechner besser verarbeiten
R: Integer;
begin
Len:=Length(FRes64+100000);
//<<-- hier gleich mehr byte reservieren
Rnd:=255;
R:=0;
while Cnt>0
do
begin
Akt:=Config.Start;
C:=0;
while Akt<>Config.Ziel
do
begin
if Rnd>31
then begin R:=Random(MaxInt); Rnd:=0;
end;
if (R
and (1
shl Rnd))<>0
then
Inc(Akt)
else if Akt>3
then Dec(Akt);
Inc(C);
Inc(Rnd);
end;
if C>=Len
then
begin
Len:=C+1;
SetLength(FRes64,Len+100000);
//<<-- hier gleich mehr byte reservieren
end;
Inc(FRes64[C]);
Dec(Cnt);
end;
end;
PS: bei mir werden ca. 4'000'000'000 random aufrufe in ein paar wenigen sekunden abgearbeitet... also, an random kanns nicht liegen..