Objective C 隨機數及陣列隨機取元素

2021-06-26 17:54:29 字數 1492 閱讀 2384

這裡記錄一下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 函...