W małej aplikacji napisanej w C / C ++ mam problem z rand
funkcją i być może zalążkiem:
Chcę utworzyć sekwencję liczb losowych, które mają różne rzędy, tj. Mają różne wartości logarytmu (podstawa 2). Wydaje się jednak, że wszystkie uzyskane liczby są tego samego rzędu, wahając się między 2 ^ 25 a 2 ^ 30.
Czy to dlatego, że rand()
jest zasiane czasem uniksowym, który jest obecnie stosunkowo dużą liczbą? O czym ja zapominam? Rozsiewam rand()
tylko raz na początku main()
.
rand()
się zwrócić równomiernie rozłożone liczby (dokumentacja z wysokim rankingiem Google wyraźnie tak mówi), nie sądzę, aby to pytanie było przydatne dla przyszłych czytelników. Dlatego głosuj negatywnie, ale nie zniechęcaj się do używania SO.