2012-02-08 83 views
0

我想創建一個數字從0到9的數組,並希望他們被隨機列表 - arc4random

含義,當用戶點擊一個UIButton它創建對象4,5的一個NSMutableArray, 8,3,6,2,9,1,7,0

當用戶再次點擊按鈕時,它會生成另一個0-9的隨機數列表,依此類推。

我遇到的問題是arc4random例程。那個例程將一次一個0-9之間的隨機數。我必須保存它吐出的數字並將其存儲到數組中。然後,我將檢查它吐出的下一個隨機數是否已經在數組中,如果不是,則將其添加到數組中,否則保持循環,直到找到一個不在我的數組中的數字。繼續做這個瘋狂,直到我的數組大小爲10.

它的一切都很好,適合0-9的小陣列。如果我需要創建一個0到1000之間的隨機數組,我該怎麼辦?

我在尋找的是一種高效的方法,不需要5年的時間才能完成。有什麼想法嗎?

+2

聽起來像是你只需要數字量的[洗牌算法(HTTP ://sackoverflow.com/questions/56648/whats-the-best-way-to-shuffle-an-nsmutablearray) – Joe 2012-02-08 14:44:58

+0

聽起來像一個家庭作業。 – bbarnhart 2012-02-08 14:53:09

+0

不是家庭任務。我正在嘗試創建一個顯示某些彈出文本的應用程序,但我不想一遍又一遍地重複相同的文本。所以我認爲有什麼更好的方法來確保唯一性,而不是創建一個不會重複相同數字的數組。因此,這個問題。 – 2012-02-08 15:20:05

回答

0

您可能需要使用隨機和LINQ

Random random = new Random(0); 
var myRandom = Enumerable.Repeat(0, n).Select(i => random.Next(0, 9)); 

其中n是你想

希望幫助

+2

爲什麼要將C#Linq代碼發佈到Objective-c問題? – Joe 2012-02-08 14:59:57

+0

c#不是我爲iPhone編寫應用程序而選擇的第一種語言。 – 2012-02-08 15:01:30

+0

@Joe .. monotouch支持linq – 2012-02-08 15:01:52