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 byj=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 sollhabe 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.