2012-01-11 45 views
0

我正在使用rand()函數,但它總是使用相同的隨機序列。有沒有隨時鐘變化的隨機函數?我該怎麼做?什麼是隨機函數,每次啓動都會有所不同

+2

arc4random()。在這裏回答:http://stackoverflow.com/questions/160890/generating-random-numbers-in-objective-c – colbadhombre 2012-01-11 20:11:08

回答

0

你打算在使用它們之前親自種子rand()random()(稍微更大的空間),並使用它們各自的種子功能。你可以使用時間,或任何你想要的其他值:

srand(time(0)); 
srandom(time(0)); 

這裏我們得到系統時間;顯然傳遞一個常量會在每次運行中產生相同的序列。

您還可以使用arc4random(),它使用/ dev/random生成非常高質量的隨機比特和種子本身。

+1

使用'arc4random()',真的沒有什麼理由沒有和沒有種子的問題。 – zaph 2012-01-11 20:39:55

1

rand()需要您指定種子。指定種子的最好方法是使用當前時間。

// specify the seed 
srand(time(NULL)); 

或者您可以使用arc4random

+1

如果您對安全有任何興趣,請不要隨着時鐘播種,那只是爲了易於破解。 – zaph 2012-01-11 20:41:12

相關問題