iOS 隨機數的使用

2021-07-11 14:12:15 字數 1569 閱讀 9493

1、iphone有幾個內嵌的隨機數發生器,如rand()、random()、arc4random()

其精確程度為

arc4random()  >  

random()  >  

rand()

可以由其原型進行推斷

int rand();

long random();

u_int32_t arc4random();

2、rand()和random()在使用之前需要先初始化隨機種子,即呼叫

srandom(time(null));

arc4random()不需要生成隨機種子,因為第一次呼叫的時候就會自動生成。

3、在iphone中,rand_max是0x7fffffff (2147483647),而arc4random()返回的最大值則是 0x100000000 (4294967296),從而有更好的精度。

4、幾個呼叫arc4random()的示例:

1)、通過arc4random() 獲取0到x之間的整數的**如下:

int value = arc4random() % (x+1);

2)、獲取1到x之間的整數的**如下:

int value = (arc4random() % x) + 1;

其中,根據預算優先順序括號實際是不需要的,但還是應該對括號格外小心。

3)、如果想生成乙個浮點數,可以在專案中定義如下巨集:

#define arc4random_max  

0x100000000

然後就可以使用arc4random() 來獲取0到100之間浮點數了(精度是rand()的兩倍),**如下:double val = floorf(((double)arc4random() / arc4random_max) * 100.0f);  

1、隨機數的使用

1)、arc4random() 比較精確不需要生成隨即種子

使用方法 :

通過arc4random() 獲取0到x-1之間的整數的**如下:

int 

value

= arc4random

() % x; 

獲取1到x之間的整數的**如下:

int 

value

= (arc4random() % x) + 1; 

2)、ccrandom_0_1() cocos2d中使用 ,範圍是[0,1]

使用方法:

float random = ccrandom_0_1() * 5; //[0,5]   ccrandom_0_1() 取值範圍是[0,1]  

3)、random() 需要初始化時設定種子

使用方法:

srandom((unsigned int)time(time_t *)null); //初始化時,設定下種子就好了。

ios中的隨機數使用

有如下三種隨機數方法 1.srand unsigned time 0 int i rand 5 2.srandom time 0 int i random 5 3.int i arc4random 5 常用 注 rand 實際並不是乙個真正的偽隨機數發生器,random 會相對好點,但也不算理想。個...

ios 產生隨機數

ios 有如下三種隨機數方法 1.srand unsigned time 0 不加這句每次產生的隨機數不變 int i rand 5 2.srandom time 0 int i random 5 3.int i arc4random 5 注 rand 和random 實際並不是乙個真正的偽隨機數發...

ios 生成隨機數

有時候我們需要在程式中生成隨機數,但是在 objective c 中並沒有提供相應的函式,好在 c中提供了 rand srand random arc4random 幾個函式。那麼怎麼使用呢?下面將簡單介紹 1 獲取乙個隨機整數範圍在 0,100 包括0 不包括 100int x arc4rando...