我被困在一個關於隨機數的問題中。我使用arc4random()
生成隨機數。我想首先生成0-9之間的隨機數。所以我正在使用:從給定數字生成隨機數
int RandomNumber = arc4random() % 9;
它很好。現在假設我有8,我不希望我的新的隨機數是8,所以我做了以下內容:
NSMutableArray *aryTemp = [NSMutableArray new];
for (int i = 0; i < [aryTemp Count] < 9; i++) {
int RandomNumber;
do {
RandomNumber = arc4random() % 9;
}
while ([aryTemp containsObject:[NSNumber numberWithInt:RandomNumber]])
[aryTemp addObject:[NSNumber numberWithInt:RandomNumber]];
}
所以,我產生比它添加到陣列不是檢查下一個隨機的隨機數這是以前生成的隨機數或不是?如果不是,則將其添加到數組中。
它工作正常的一些出發數字,但是當我離開的與當時幾個選項,我有非常少的機會,產生慾望的隨機數和while循環過程需要大量的時間,由於冗餘的隨機數。
我在找什麼我想要0,1,2,3,4,5,6,7,8,9的隨機數字 如果我下次第一次得到6,隨機數字必須與這些數字只有0,1,2,3,4,5,7,8,90
爲什麼不添加的所有號碼和洗牌的陣列? – 2013-03-28 11:31:39
只要看看我的答案... ...而不是包括maxValue把你的號碼 – 2013-03-28 11:32:28
可能重複[什麼是隨機播放一個NSMutableArray的最佳方式?(http://stackoverflow.com/questions/56648/whats-the- best-way-to-shuffle-an-nsmutablearray) – 2013-03-28 11:32:50