gleiche Zahlen bei Randomize() !!!
-
Hallo Leute,
ich habe da ein kleines Problemchen mit der Funktion "Randomize()". In meinem Programm lasse ich mir damit Zufallswerte ausgeben. Nur so zufällig sind diese Zahlen ja gar nicht.Beispiel:
1. Ziehung = 20
2. Ziehung = 31
3. Ziehung = 17Nun beende ich mein Programm und starte es erneut. Und jetzt kommts...
1. Ziehung = 20
2. Ziehung = 31
3. Ziehung = 17Gibt es denn da eine Möglichkeit, das ich WIRKLICH verschiedene Zufallszahlen bekomme?
Gruß
torsten_156
-
tuh Dir bitte selbst den Gefallen und gib mal "Randomize" oder "Zufallszahlen" in der Suchfunktion ein

-
Hallo
du kannst auch Randomize() und RandG() benutzen. Allerdings darfst du Randomize() selber nur einmal beim Start des Programms benutzten.
bis bald
akari
-
Naja...der PC kann keine richtigen zufallszahlen ausgeben...es wird nur eine liste an "zufallszahlen" (die aus irgenwelchen benutzerverhalten entsteht) generiert, die immer wieder abgearbeitet wird, desshalb bekommst du immer die gleiche zahlen. Damit du aber immer verschiedene zaheln bekommst und nicht die selben, muss du einmal am Programmstart Randomize(); aufrufen und später rand() benutzen.
-
@akari
Randomize() habe ich in FormCreate gepackt. Ohne erfolg!!!
dann wollte ich es mal mit RandG() versuchen. Habe die <Math.h> includiert, aber er gibt mir den Fehler "Aufruf der undef. Funktion RandG()" aus ?@Simon2
ich hatte es schon so wie Du es mir geraten hast. Bringt leider keinen Erfolg.Gruß torsten_156
-
in der <time.h> steht time().
probier mal statt Randomize() srand(time(0)).
-
oder:
Randomize(); int ran = RandomRange(0,100);damit brauchst du kein <time.h> inkludieren.
-
bei Randomize ist die Basis ebenfalls die Zeit. das kann auch mehrmals aufgerufen werden, dann wird nur die basis des generators geändert.
RandG steht auch in math.hpp, gehört nämlich zur vcl
-
Hallo,
ich habe es jetzt so gelöst:
In FormCreate stehttime_t t; srand((unsigned) time(&t));Damit wird doch die Zeit als variable Zahl genutzt.
Wenn ich jetzt eine Zufallszahl benötige, rufe ich
int zahl = rand() % 49;auf.
So bekomme ich bei jedem Aufruf nach einem Programmstart immer eine andere Zahl heraus.
Vielen Dank an Euch für die Hilfe!!!Gruß torsten_156