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 = 17

    Nun beende ich mein Programm und starte es erneut. Und jetzt kommts...
    1. Ziehung = 20
    2. Ziehung = 31
    3. Ziehung = 17

    Gibt 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 steht

    time_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


Anmelden zum Antworten