可能重複:
What's the Best Way to Shuffle an NSMutableArray?shuffle的內容設置在NSMutableArray的
我有一個NSMutableArray
一些值。現在我需要洗牌這些值。有人能告訴我如何洗牌這些價值。
對不起,我沒有任何代碼來演示。
我經歷了這個SO後,建議使用exchangeObjectAtIndex:withObjectAtIndex:
,但有人可以告訴我它是如何完成的。一個例子或教程解釋這將有所幫助。
可能重複:
What's the Best Way to Shuffle an NSMutableArray?shuffle的內容設置在NSMutableArray的
我有一個NSMutableArray
一些值。現在我需要洗牌這些值。有人能告訴我如何洗牌這些價值。
對不起,我沒有任何代碼來演示。
我經歷了這個SO後,建議使用exchangeObjectAtIndex:withObjectAtIndex:
,但有人可以告訴我它是如何完成的。一個例子或教程解釋這將有所幫助。
你可以這樣說:
for (int i = [array count] - 1; i > 0; i--) {
int j = arc4random() % (i+1);
[array exchangeObjectAtIndex:i withObjectAtIndex:j];
}
陣列是你NSMutableArray
。
對於一個好的洗牌,你不想用'數組數'來修改,但是用'我'。參見[Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher-Yates_shuffle#The_modern_algorithm)。 – SSteve 2012-04-01 16:13:29
@SSteve你是對的!謝謝,我更新了答案。 – 2012-04-01 16:23:18
你爲什麼不看這個問題的其他答案? [其中之一](http://stackoverflow.com/a/56656/689356)提供了一個完整的解決方案。 – yuji 2012-04-01 15:50:46