2010-08-17 69 views
0

我在我的iPhone應用程序中有一個55(或任何數字,但目前55)的問題列表。隨機訂購一個列表

我已經寫過,因此它按照從1到55的順序排列。

但是,我想使這個順序是隨機的(或者是僞隨機)。

我可以通過編程方式生成一個隨機數來選擇其中一個問題,然後創建第二個數字列表,並檢查每次我還沒有得到它之前將該問題放入列表中並選擇一個新的隨機問題。

我想知道是否有更好/更簡單的方法來做到這一點?

就像可以使用函數按數字或字母順序對列表進行排序一樣,是否可以對它們進行隨機排序,並且應該使用哪種類型的列表?

任何幫助表示讚賞。

感謝

奧利弗

+1

可能重複http://stackoverflow.com/questions/791232/canonical-way-to-randomize-an-nsarray-in-objective -c) – kennytm 2010-08-17 14:41:14

+0

可能,感謝您的鏈接。我在發佈之前做過搜索,但沒有遇到任何問題。謝謝 – Fogmeister 2010-08-17 14:59:48

回答

2

Fisher–Yates shuffle

的[規範的方法來隨機化在目標C一個NSArray](
+0

愛那個算法。 使輕鬆的隨機排序工作。如果tob的解決方案不起作用,我可以使用「現代版本」。我將確定寫下這一點,甚至只是說我已經使用了它:D 謝謝 – Fogmeister 2010-08-17 14:44:14

+0

完美工作在4行代碼中:D 謝謝! – Fogmeister 2010-08-18 23:38:17

0

使用NSMutableArray,向它發送一個sortUsingSelector:消息。在選擇器中,隨機返回NSOrderedAscendingNSOrderedDescending

+0

謝謝,今晚會在家裏看看結果。 – Fogmeister 2010-08-17 14:43:07