在xcode中随机选择数字

时间:2012-08-24 12:32:40

标签: iphone ios5 xcode4.3

我的整数中的数字是0,17,23,44,57,60,66,83,89,91,100,但我想从该数字中随机输入6个数字,怎么做?我只能显示0-100的一个随机数,但我不知道如何从所选数字中显示6个数字。请教。

4 个答案:

答案 0 :(得分:2)

如果您想从阵列中选择六个数字而不重复,请使用Knuth-Fisher–Yates shuffle对阵列进行洗牌,然后取前六个数字:

int data[] = {0, 17, 23, 44, 57, 60, 66, 83, 89, 91, 100};
// Knuth-Fisher-Yates
for (int i = 10 ; i > 0 ; i--) {
    int n = rand() % (i+1);
    int tmp = data[i];
    data[i] = data[n];
    data[n] = tmp;
}

data数组的前六个元素包含原始11元素数组中的随机选择。

答案 1 :(得分:1)

将数字放入数组中。使用随机数生成器得到一个比数组长度小0到1之间的随机数,然后得到该索引处的数字。

这只是一种做法。

答案 2 :(得分:1)

将随机数提取到数组中以获取以下代码可能对您有用

[array objectAtIndex: (random() % [array count])]

以下是示例

NSUInteger firstObject = 0;

for (int i = 0; i<[myNSMutableArray count];i++) {
    NSUInteger randomIndex = random() % [myNSMutableArray count];
    [myNSMutableArray exchangeObjectAtIndex:firstObject withObjectAtIndex:randomIndex];
    firstObject +=1;

}

答案 3 :(得分:0)

请参阅此帖子:Generating random numbers in Objective-C

有很多方法可以做到这一点。这种特殊的方法有很好的反应。要获得6个随机数,只需运行该函数6次。