這裡記錄一下objective-c隨機數以及隨機數在陣列中的使用。
這個貌似是最好用的,聽說比較精確,用起來也比較方便,不需要初始化隨機種子。
0 - n-1:int value = arc4random() % x;
1 - n:int value = (arc4random() % n) + 1;
這種屬於較老式的隨機數,c++中也有,需要重置隨即種子,用的少,也就不詳細介紹了。
這個存在與cocos2d中,也一起歸納到這裡了。這是取0-1的隨機數,
[0,5]:float random = ccrandom_0_1() * 5;
陣列中隨機取出三個元素:
nsarray *array = [[nsarray alloc] initwithobjects:@"a",@"b",@"c",@"d",@"e",nil];
nsmutablearray *randomarray = [[nsmutablearray alloc] init];
while ([randomarray count] < 3)
這種我是最先想到的方法,但是有個問題就是,可能會隨機出兩個相同的數,甚至三個,只是可能性很小,所以我們要排除重複性,看到有從陣列中先remove的作法,但是我覺得用nsset也不失為一種好的方法。
nsarray *array = [[nsarray alloc] initwithobjects:@"a",@"b",@"c",@"d",@"e",nil];
nsmutableset *randomset = [[nsmutableset alloc] init];
while ([randomset count] < 5)
nsarray *randomarray = [randomset allobjects];
nslog(@"%@",randomarray);
這樣每次得到的值都是一樣的
用如下方法可獲得類似銀行類軟體的隨機鍵盤數字
nsmutablearray *array = [[nsmutablearray alloc] initwithobjects:@"0", @"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9",nil];
nsmutablearray *randomarray = [[nsmutablearray alloc] init];
while ([randomarray count] < 10)
nslog(@"%@", randomarray);
隨機數 偽隨機數
隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...
objective c 中隨機數的用法
1 隨機數的使用 1 arc4random 比較精確不需要生成隨即種子 使用方法 通過arc4random 獲取0到x 1之間的整數的 如下 int value arc4random x 獲取1到x之間的整數的 如下 int value arc4random x 1 2 ccrandom 0 1 c...
隨機數生成 偽隨機數和真隨機數
c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...