Hallo!
Ich muss ein Programm schreiben, wo eine Zufallszahl mit Hilfe der rand Funktion erzeugt werden muss. Dabei soll festgelegt werden können, in welchem Bereich sich die Zufallszahl befindet.
Wie kann ich das machen?
Hallo!
Ich muss ein Programm schreiben, wo eine Zufallszahl mit Hilfe
der rand Funktion erzeugt werden muss. Dabei soll festgelegt
werden können, in welchem Bereich sich die Zufallszahl
befindet.
Hach ja, richtige Dokumentation ist was tolles. Aus der rand()-manpage:
The rand() function returns a pseudo-random integer between 0 and RAND_MAX.
[…]
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, 1992 (2nd ed., p. 277)), the following comments are made:
"If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in
hi,
versuchs mal mit:
double x;
x = rand() / MAX_VALUE;/* dadurch erhälst du eine ZZ zwischen 0 und 1 */
x = x * (obere_schranke - untere_schranke) + untere_schranke;
hi,
versuchs mal mit:
double x;
x = rand() / MAX_VALUE;/* dadurch erhälst du eine ZZ zwischen
0 und 1 */
Denk da nochmal gründlich drüber nach. rand() liefert einen integer-Wert zwischen 0 und RAND_MAX, MAX_VALUE ist auch ein integer. Also bewirkst du mit dem Diviso-Operator, dass du entweder 0 oder 1 erzeugst (wobei die 1 extrem unwahrscheinlich ist). Korrekterweise sollte es heissen: