OC中的隨機數函式 arc4random

2021-07-25 02:42:34 字數 730 閱讀 1132

在oc中有幾個內嵌的隨機數發生器,很多人的第一反應可能就是在呼叫如下函式後使用rand(),

.......srandom(time(null));

但是,但是()實際上並不是乙個整整的偽隨機數發生器,random()會好一些,但不是最理想的,幸運的是oc上還有其他的選擇,個人來說首選arc4random(),原因是他是乙個真正的偽隨機數演算法,而且範圍是rand()的兩倍。

在oc中,rand_max是0x7fffffff (2147483647),而arc4random()返回的最大值則是 0x100000000 (4294967296),從而有更好的精度。此外,使用arc4random()還不需要生成隨機種子,因為第一次呼叫的時候就會自動生成。

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

.....int value = arc4random()%x;

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

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

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

#define arc4random_max      0x100000000 

然後就可以使用arc4random() 來獲取0到100之間浮點數了(精度是rand()的兩倍),**如下:

double val = floorf(((double)arc4random() / arc4random_max) * 100.0f);    

產生隨機數 arc4random 函式

問題 產生一組 四個 隨機數。要求 每組隨機數隨機生成數字 字母 分大小寫 char vercode 定義隨機數字元 int length sizeof vercode sizeof char 計算陣列長度 int one arc4random length 定義四個隨機數 int two arc4...

python numpy中隨機數生成包random

1.numpy.random.randn 從標準正太分布中返回乙個樣本值 原型 numpy.random.randn d0,d1.dn 引數 d0,d1.dn 返回引數的維度,應該是整數,如果沒有引數,就返回乙個python float型的值 返回值 z n維陣列 形式為 d0,d1,dn 或者是乙...

IOS中的隨機數arc4random方法

通過arc4random 獲取0到x 1之間的整數的 如下 int value arc4random x 獲取1到x之間的整數的 如下 int value arc4random x 1 最後如果想生成乙個浮點數,可以在專案中定義如下巨集 define arc4random max 0x1000000...