2010-08-17 237 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