2011-04-08 43 views
0

嗨 我與股票隨着生成一個隨機數 我有一個數組,可容納20個變量,我想在該範圍內隨機選擇一個條件,它跳過每一個4個變量。隨機數應該是(0,4,8,12或16)?我怎樣才能做到這一點 ? 我喜歡的類型的NSArray的陣列...從0到20跳躍4次的隨機數

感謝,

+2

你可以只選擇一個隨機數0,1,2,3,4,然後乘以4.請注意,如果你重複這一點,你仍然會restriced到相同的五個變量來自你的陣列。 – Henry 2011-04-08 08:53:29

+0

結帳我的答案。只有一行:) – 2011-04-08 09:05:53

+0

哎@Dalal阿赫亞Bhalara完成只是複製和從我的答案粘貼。我在他面前發佈了答案。請檢查給定答案的時間。 – 2011-04-08 13:15:20

回答

3
int random = (arc4random() % 5)*4; 
+0

就在一行:) – 2011-04-08 09:03:37

+0

這會給0,4,8,12,16 – 2011-04-08 09:05:27

+0

第一代碼片段,你寫的不會。我是在評論該... – 2011-04-08 09:11:07

0

可以使用int r = arc4random() % 20;用於獲取隨機數。那麼到時候你想獲得另一個隨機數檢查是否獲得對上號,並用它根據自己的需要

0

我認爲最好的辦法是你的「隨機數」存儲到

新NSArray:[0,4,8,12,16]

然後就可以產生一個標準隨機整數爲0的範圍內

int r = arc4random() % 5; 

〜4和間接地從所定義的NSArray檢索您希望的「隨機數」。

否則,您可以使用電源或其他算術計算來獲得你想要的輸出等,但爲什麼要浪費計算的努力,如果你知道,只有5你想要的候選人?

+0

我認爲,在這種情況下,存儲的「隨機」沒有的和索引的數組ramdonly到他們的心不是最好的soloution。鑑於他想要的隨機否的集合是規則的,那麼算術解決方案似乎對我來說最爲清晰。 – brain 2011-04-08 09:03:44

+0

取決於他的目標,我猜。我認爲這兩種方式的工作,誘使陣列查找和空間,另一個....噢。同意 – Winfred 2011-04-08 09:09:58

0

喜歡這張

NSArray *numbers = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:4],[NSNumber numberWithInt:8],[NSNumber numberWithInt:16],nil]; 

int myRandom0to16 = [[numbers objectAtIndex:arc4random()%numbers.count] intValue]; 
+0

一些你的代碼真的幫了我很多 – Dalal 2011-04-08 13:24:24

+0

很高興幫助:) – 2011-04-08 14:07:51

1

下面的代碼塊使用

int randomNum; 
do 
{ 
    randomNum = arc4random() % 17; //Ensure --> Your number will be in the range (0-16) 
}while(randomNum % 4 == 0) //Must be the multiple of 4 means ----> { 0,4,8,12,16} 
0

INT無規=(arc4random()%5)* 4;

爲前

如果隨機不爲0,那麼你得到0 * 4 = 0

如果隨機不爲1,那麼你得到1×4 = 4

如果隨機不爲2那麼你得到2 * 4 = 8