![]() |
random generator
hallo leute ich bin ein neuer programmierer und versuche nachvollziehen warum ich bei random generator durch randomize initialisieren muss??? was bedeutet konkret initialisieren???
|
Re: random generator
Hallo
Initialisieren bedeutet sowas wie "Meine Damen und Herren, wir Landen in wenigen Minuten. Bitte machen sie die Rückenlehnen gerade, klappen sie die Tische ein, Rauchen nicht und besuchen keine Toiletten" im Flugzeug. Gut, trifft es vielleicht nicht ganz so gut aber ist einigermasen Anschaulich.(Die Randomfunktion wäre dann das Landen :D Allerdings müsste ein Flugzeug dann mehrmals Landen können .. egal :D ) Was genau Randomize macht kann ich nur vermuten. Es setzt, da die Randomfunktion einen Amhaltswert braucht, diesen auf GetTickCount, also die ms, die das Programm schon läuft. Gruß |
Re: random generator
Hallo!
Wenn das Randomize nicht ausgeführt wird, kommt in der Regel bei jedem Programmaufruf dieselbe Folge von Zufallszahlen. Theoretisch kann man das ausnutzen, indem man RandSeed auf einen festen Wert setzt (ohne Initialisierung wäre das 0). Sollte man aber nicht, denn laut Delphi-Hilfe "kann sich die Implementation in späteren Versionen ändern" - d.h. dann kommt 'ne andere Zahlenfolge. Randomize setzt den Startwert des Zufallsgenerators auf die Uhrzeit (nicht die Zeit seit Programmstart). Ein häufig zu findender Fehler ist es,
Delphi-Quellcode:
zu schreiben - bei genügend schnellem Aufruf (z.B. in einer Schleife) gibt das eine Folge von gleichen Zahlen. Randomize wird nur einmal im Programmlauf aufgerufen - OnCreate der Mainform oder der Initialisation-Abschnitt einer Unit wären angemessene Orte dafür.
Randomize;
wert:=Random(grenze); Gruß Dietmar Brüggendiek |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz