Zitat von
franktron:
ManuMFs idee ist schon gut weil dir Random Funktion auf der Systemzeit beruht (sowiet das noch so ist)
Zitat von
alzaimar:
Wann war das denn mal? Eigentlich kann das nicht sein, weil ein Random-Generator deterministisch sein muss. Wenn ich ihn wohldefiniert initialisiere, dann soll er mir immer die selbe Folge von Pseudozufallszahlen liefern. Ohne Randomize macht er das. Randomize selbst ist abhängig von der Zeit.
Stimmt genau ... nur in Randomize findet man etwas Zeitabhängiges ^^
Delphi-Quellcode:
Var RandSeed: LongInt;
Procedure Randomize;
Var Count: LargeInt;
Begin
If QueryPerformanceCounter(Count) Then RandSeed := Count
Else RandSeed := GetTickCount;
End;
Function Random(Range: LongInt): LongInt; Overload;
// Borland Delphi v7.0 Build 4453
Begin
RandSeed := RandSeed * 134775813 + 1;
//Result := LargeInt(Range) * LongWord(RandSeed) div LargeInt($100000000);
Result := TLargeIntRec(LargeInt(Range) * LongWord(RandSeed)).Hi;
End;
Function Random: Extended; Overload;
// Borland Delphi v7.0 Build 4453
Begin
RandSeed := RandSeed * 134775813 + 1;
//Result := 1.0 * LongWord(RandSeed) / LargeInt($100000000);
Result := LongWord(RandSeed) / LargeInt($100000000);
End;