Der Martin: C++ (Pseudo-)Zufallszahl generieren

Beitrag lesen

Hallo,

random24 = rand() * 2^23 + 2^23;
Kann es sein, dass dir ein Fehler passiert ist?

oder vielleicht dir beim Interpretieren?

Möglicherweise hast du übersehen, dass der Operator ^ in C/C++ nicht für Potenzierung steht, sondern für bitweises XOR, und dass die Formel, so wie Gunnar sie hingeschrieben hat, nur abstrakt gemeint war? Und hast du vielleicht auch übersehen, dass rand() einen Wert vom Typ float oder double im Intervall [0.0, 1.0[ liefert?

Ach, und bevor du 2^23 tatsächlich durch Potenzieren bildest: Zweierpotenzen notiert man am effizientesten per Bit-Shift, also hier z.B. (1<<23). Oder man schreibt's direkt als ausgerechnete Konstante hin, aber dann ist meist nicht so klar erkennbar, was man meint.

So long,
 Martin

--
Alle Tage sind gleich lang. Aber unterschiedlich breit.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(