besserer Zufallszahlengenerator als srand/rand

Hi.

Tetse hat gesagt.:
Bei der Variante mit Modulo Operator hat sich nach einer gewissen Anzahl an Schleifendurchgängen eine gewisse Saturierung des Bilds eingestellt - es wurden immer die gleichen Zufallszahlensequenzen geliefert. Aber wie kann das passieren? Der Nachkommaanteil wird ja immer weggeschnitten, aber soll dass allein schon dafür verantwortlich sein?
Also Moment. Es gibt bei der Ganzzahldivision keinen Nachkommateil sondern nur den ganzzahligen Quotienten und Rest. Der Modulo Operator liefert dir also den Rest der Division. Das Problem mit dieser Operation bei den Zufallszahlen ist das nur die niederwertigen Bits für das Ergebnis wichtig sind. D.h. obwohl rand() völlig verschiedene Zahlen liefert (z.B. ganz große und ganz kleine) ist das Ergebnis der Modulo Operation für viele dieser Zahlen gleich - obwohl sie völlig verschieden sind. Das wird durch den Code in der irand() Funktion vermieden, da erstmal das Ergebnis der rand() Funktion um die Größe des Intervalls gestreckt wird und dann dividiert wird. So kommt eine große Zufallszahl des entsprechenden Intervalls zustande wenn rand() eine große Zahl geliefert hat, und eine kleinere Zahl wenn rand() eine kleine Zahl liefert.

Ich hoffe ich hab mich da jetzt irgendwie verständlich ausgedrückt..

Gruß
 
Zurück