有如下三種隨機數方法:
1. srand((unsigned)time(0));
int i = rand() % 5;
2. srandom(time(0));
int i = random() % 5;
3. int i = arc4random() % 5 (常用) ;
注:rand()實際並不是一個真正的偽隨機數發生器,random()會相對好點,但也不算理想。個人來說首選arc4random() ,原因就是它是一個真正的偽隨機算法,而且范圍是rand()的兩倍。
在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值則是 0x100000000 (4294967296),從而有更好的精度。此外,使用arc4random()還不需要生成隨機種子,因為第一次調用的時候就會自動生成。
參考:
http://www.cocoachina.com/bbs/read.php?tid=70719&keyword=%CB%E6%BB%FA%CA%FD
http://www.cocoachina.com/bbs/read.php?tid-2977-fpage-2-toread--page-1.html
http://www.codeios.com/thread-310-1-1.html