Zufallszahlengenerator



  • Wie kann ich eine Zufallszahl generieren die kleiner als eine bestimmte Zahl ist 😕 Sollte auch in Windows funktionieren.

    Vielen Dank im voraus.

    MFG



  • #include <cstdlib>      // Prototypen von srand() und rand()
    #include <ctime>        // Prototyp von time() 
    
    .......
    
        int  zahl; 
        long sek;
    
        // Zeit in Sekunden lesen: 
        time( &sek); /*time: nimmt die systemtime: time_t time( time_t *timer );*/
    
        srand((unsigned)sek);    // Zufallsgenerator initialisieren, setzt den Startpoint
    
           zahl = rand() % 15 ;//generiert eine Zufahlsnummer, mit modulo 15 kommen werte zwischen 0 und 14 raus
    //15 kann auch als variable gesetzt werden
    


  • Danke 🙂



  • Tag,

    Eine kleine Anmerkung noch. man 3 rand liefert unter anderem

    In Numerical Recipes in C: The Art of Scientific Computing
    (William H. Press, Brian P. Flannery, Saul A. Teukolsky,
    William T. Vetterling; New York: Cambridge University
    Press, 1990 (1st ed, p. 207)), the following comments are
    made:
    "If you want to generate a random integer between 1
    and 10, you should always do it by

    j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

    and never by anything resembling

    j=1+((int) (1000000.0*rand()) % 10);

    (which uses lower-order bits)."

    Random-number generation is a complex topic. The Numeri-
    cal Recipes in C book (see reference above) provides an
    excellent discussion of practical random-number generation
    issues in Chapter 7 (Random Numbers).



  • thx

    habe ich mir mal kopiert.

    für meine miniprogramme reicht das oben locker aus.
    aber wenns mal mit dem studio besonders sein soll 🙂

    habe aus zuverlässig quelle gehört, daß der gcc das nicht nötig hat, stände in der man page ..



  • Tag,

    Kein prob. Bin ich auch erst vor kurzem drüber gestolpert. Habs vorher auch immer mit dem modulo-operator gemacht.


Anmelden zum Antworten