Ich habe nun folgendes getestet:
Ich habe direkt hintereinander zwei Zufallszahlen erstellen lassen und habe die Befehlszeit gemessen.
Code:
QueryPerformanceCounter(startTime);
a:= Random(100);
QueryPerformanceCounter(endTime);
b:= Random(100);
Lässt man die Counterbefehle weg, so erzeugt das System einwandfreie Zufallszahlen (mal gleich und ein andermal total unterschiedlich).
Wie kann das möglich sein, wenn der Counter mir zeigt, dass eigentlich 0 zeit zwischen den beiden Befehlen vergangen ist?
(starttime: 35982319073 und endtime: 35982319073).
Edit: die Funktion Random sagt eigentlich schon einiges
Frage selbst beantwortet
Code:
function Random(const ARange: Integer): Integer;
{$IFDEF PUREPASCAL}
var
Temp: Integer;
begin
Temp := RandSeed * $08088405 + 1;
RandSeed := Temp;
Result := (UInt64(Cardinal(ARange)) * UInt64(Cardinal(Temp))) shr 32;
end;