iOS隨機數的產生

gcd8 9年前發布 | 1K 次閱讀 Objective-C IOS

ios 有如下三種隨機數方法:

1.    srand((unsigned)time(0));  //不加這句每次產生的隨機數不變
int i = rand() % 5;

  1. srandom(time(0)); //C語言做法
    int i = random() % 5;

  2. int i = arc4random() % 5 ; //Oc的做法 </pre>

    注:rand()和random()實際并不是一個真正的偽隨機數發生器,在使用之前需要先初始化隨機種子,否則每次生成的隨機數一樣。

    arc4random() 是一個真正的偽隨機算法,不需要生成隨機種子,因為第一次調用的時候就會自動生成。而且范圍是rand()的兩倍。在iPhone中,RAND_MAX是 0x7fffffff (2147483647),而arc4random()返回的最大值則是 0x100000000 (4294967296)。

    精確度比較:arc4random()  >  random()  >  rand()。

        常用方法:arc4random

1、獲取一個隨機整數范圍在:[0,100)包括0,不包括100  

int x = arc4random() % 100;  

2、  獲取一個隨機數范圍在:[500,1000),包括500,不包括1000  

int y = (arc4random() % 501) + 500;  

3、獲取一個隨機整數,范圍在[from,to),包括from,不包括to  

-(int)getRandomNumber:(int)from to:(int)to  

{  

    return (int)(from + (arc4random() % (to – from + 1))); //+1,result is [from to]; else is [from, to)!!!!!!!  

}  </pre> 


 本文由用戶 gcd8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!