2011-05-06 47 views

回答

4

在iOS和OS X上,改爲使用arc4random。質量隨機性更高,無需擔心播種。

但是,rand()不應該是週期性的,除非您每次打電話srand。或者錯誤地使用隨機數字。

+0

arc4random()使用/ dev/random作爲源。 – JustSid 2011-05-06 14:33:26

+0

是的。我每次都打電話給srand()。 =(我認爲它可以解決rand()的問題 – Riddick 2011-05-06 14:35:38

+1

@JustSid:arc4random對* seed *使用'/ dev/urandom'(而不是'/ dev/random'),當你手動調用arc4random_stir時。 – Anomie 2011-05-06 14:37:41

3

你可以試試random()/ srandom()來代替。比rand()/ srand()更好的發生器。

0

你是爲了調試還是在模擬器上構建?我知道我在調試時構建了一些Windows應用程序時遇到了這種問題, RNG自動採用恆定值進行播種,以產生一致的結果。您可能想要檢查實際播種的內容,以及每次運行時是否獲得不同的輸出。