Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Randomize mehrmals starten

  Alt 29. Nov 2007, 19:27
Zitat von Dax:
Es ist nicht gut. Wenn du das mehrmals machst, wird der Zufallsgenerator mehrmals neu initialisiert, und da Randomize auf Basis von GetTickCount und damit im Millisekunden-Bereich arbeitet... Nun, am besten ein Beispiel.
Delphi-Quellcode:
var a: Integer;

Randomize;
a := Random(1000);
Randomize;
a := a - Random(1000);
a wird nahezu immer 0 sein, da der Zufallsgenerator zwei mal initialisiert wird, und dies wahrscheinlich mit dem selben Seed (4 Calls brauchen keine Millisekunde)...
Naja fast richtig. für solche Leute wie dich, hat sich Borland auch etwas ausgedacht und nimmt deswegen statt gettickcount QueryPerformancCounter. Da wird etwas fixer gezählt.
Du kannst diese Demonstration aber durchführen indem du die globale Variable RandSeed von Hand belegst.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat