Gunnar Bittersmann: C++ (Pseudo-)Zufallszahl generieren

Beitrag lesen

@@Nick:

nuqneH

Ja, ich schrieb doch, dass ich die Problemstellung geändert habe:
Jetzt habe ich versucht eine Zahl zwischen 24bit und 32bit zu erzeugen...

Du meinst eine aus dem Intervall [2²³, 2³²[?

Dann ist modulo (%) 2³¹ ebenso falsch wie es 2³² wäre. Es muss modulo 2³² − 2²³ sein.

Das heißt, du erzeugst eine Zufallszahl aus [0, 2³² − 2²³[ und addierst dann 2²³.

Nur dass das auf einem 32-Bit-System kaum gehen dürfte; rand() % (-(1<<23)) liefert wohl keine brauchbaren Zufallszahlen.

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)