In einer kleinen Anwendung, die in C / C ++ geschrieben wurde, habe ich ein Problem mit der rand
Funktion und möglicherweise dem Startwert:
Ich möchte eine Folge von Zufallszahlen erzeugen, die unterschiedliche Ordnungen haben, dh unterschiedliche Logarithmuswerte (Basis 2). Es scheint jedoch, dass alle produzierten Zahlen in derselben Größenordnung liegen und nur zwischen 2 ^ 25 und 2 ^ 30 schwanken.
Liegt es daran, dass rand()
Unix-Zeit verwendet wird, die mittlerweile eine relativ große Zahl ist? Was vergesse ich? Ich säe rand()
nur einmal am Anfang des main()
.
rand()
, gleichmäßig verteilte Zahlen zurückzugeben (Dokumentation mit hohem Google-Ranking sagt dies ausdrücklich aus), halte ich diese Frage für zukünftige Leser nicht für nützlich. Deshalb stimmen Sie ab, aber lassen Sie sich nicht davon abhalten, SO zu verwenden.