AW: Randomize o.O
Randomize als leere Funktion ohne Funktion,
für RandSeed eine ThreadVar, statt einem normalen Var und beim ThreadInit jeweils das eigentliche Randomize. Keine Änderung an alten Programmen, die neuen Programme sind automatisch threadsicher und mehrfache Aufrufe von Randomize haben keine Auswirkung. |
AW: Randomize o.O
Wenn man sich die Implenetierung von Randomize ansieht verstehe ich das "Gewese" im Sinne von "Nur einmal aufrufen" ohnehin nicht.
Wenn man keine Loops in der Art
Delphi-Quellcode:
kann man IMHO Randomize so oft aufrufen wie man will.
For i := x to y do
begin Randomize; x := Random(z); Use(x) end |
AW: Randomize o.O
Bei deinem Beispiel geht das aber nicht gut. Da die Schleife viel zu schnell durchläuft, setzt Randomize immer wieder RandSeed auf den aktuellen Timer-Wert. Somit wird (dem Algo sei dank ^^) immer wieder die gleiche Zufallszahl generiert. Oder hat sich da seit D7 was geändert?
Bernhard |
AW: Randomize o.O
Man hat inzwischen getTickCount gegen QueryPerformanceCounter ersetzt, so daß sowas zum Glück nur noch selten passiert.
Aber, ... Derartige Pseudozufallsgeneratoren sind auf eine möglichst optimale "Gleichverteilung" ausgelegt und wenn man Randomize zu häufig aufruft, dann könnte sich dieses negativ auf die Verteilung der erzeugten Zahlen auswirken. |
AW: Randomize o.O
Kommt ganz darauf an, ob man gleichverteilte Zufälle haben will oder nicht.
Bernhard |
AW: Randomize o.O
So könnte man aber keinen Einfluß auf die Verteilung nehmen.
Wenn man wirklich keine Gleichverteilung will, dann sollte man doch lieber eine Gewichtung einführen. |
AW: Randomize o.O
Zitat:
Guck dir doch noch mal bitte genau an was er geschrieben hat: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz