btw..
Zitat "floor((rand()/RAND_MAX)*Intervallgröße+UntererWert)"
Selbst wenn (rand()/RAND_MAX) einen float zwischen 0 und 1 ergibt, würde damit der Maximalwert des Intervalls gegenüber den anderen Werten wesentlich seltener aufgerufen werden, wenn das Ergebnis ein int sein soll.
Ich hatte den Anfangspost falsch gelesen. Ich dachte er will Zahlen zwischen 7 und 12 erzeugen indem er so lange Zufallszahlen erzeugt, bis die erste in diesem Intervall liegt. Was schlechter wäre als alles andere.
Die Lösung mit dem Modulo, die er hat ist auch nicht ideal. Wenn man mal darüber nachdenkt, werden die "hinteren" Äquivalenzklassen einmal seltener "getroffen" als die vorderen, wenn RAND_MAX nicht zufällig kongruent 0 ist. Bei genügend vielen Versuchen merkt man das statistisch.
In Bezug auf deinen Einwand würde ich so pfuschen, dass "wesentlich seltener" "praktisch nie" bedeutet und daher davon ausgehen dass das Intervall nach oben offen ist.
Ich vermute dass der Fehler der Dadurch entsteht letzlich kleiner ist als der beim Modulo, kann es aber gerade nich belegen.
Wie man "richtig" Zufallszahlen aufeinem Intervall erzeugt bin ich gerade zu faul zu ergooglen, der Vorschlag war wie gesagt nur dahingerotzt weil ich dachte der Threadersteller macht etwas katastrophal schlimmeres.