Entwickler-Ecke

Algorithmen, Optimierung und Assembler - implementierung random-befehl


mick - Fr 17.12.04 15:17
Titel: implementierung random-befehl
hallo zusammen.

frage:
wie sieht die interne implementierung des random-befehls aus (auch: randomize)? mit anderen worten: wie GENAU wird da die (pseudo-)zufallszahl errechnet? weiss da jmd., wie der code ausschaut?

danke + ciao,
mijozi.


jasocul - Fr 17.12.04 15:19

Randomize steht in der SYSTEM.PAS von Delphi drin.


mick - Fr 17.12.04 15:26

danke!


Motzi - Fr 17.12.04 15:42

Randomize macht nichts anderes als RandSeed mit der aktuellen Systemzeit zu initialisieren (deswegen sollte man Randomize auch nur ein einziges mal aufrufen). Random berechnet dann mit einem bestimmten Algorithmus aufbauend auf dem Wert von RandSeed die Zufallszahlen...


mick - Fr 17.12.04 15:56

und diesen algo wuerde ich mir gerne genauer ansehen. habe auf anhieb random nciht gefunden in der datei, nur randomize. muss nochmals spaeter genauer nachsehen.
wie genau wird die systemzeit da eigentlich genommen? millisekunden?

ciao,
mijozi.


Motzi - Fr 17.12.04 16:00

mick hat folgendes geschrieben:
wie genau wird die systemzeit da eigentlich genommen? millisekunden?

Genau, die Anzahl der Millisekunden seit Mitternacht...

Wegen Random.. such nach "_RandInt", das ist die eigentliche Prozedur von Random (Compiler-Magic)...


mick - Fr 17.12.04 18:25

merci beaucoup, "motzi"!

ciao,
mijozi.