选择随机数iphone sdk

时间:2010-04-28 19:55:12

标签: objective-c

我想从1到35中选择10个随机数。

我正在尝试执行以下操作,但我得到了一些重复的数字

int totalNumberCnt = 1;
while (totalNumberCnt < 11) {
    int randomNumber1 =  1 + arc4random() % 35;
    NSString *numberString = [NSString stringWithFormat: @"%d",randomNumber1];
    NSLog(numberString);
    [firstNumber addObject:numberString];
    [secondNumber addObject:numberString];
    totalNumberCnt++;
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

预计会重复数字;毕竟它是随机,任何随机样本都将包含重复。

答案 1 :(得分:0)

int unique = 0;
int numbers[35];

for (int i = 0; i < 35; i++) {
    numbers[i] = 0;
}

while (unique < 10) {
    int x = arc4random() % 35;
    if (numbers[x] == 0) {
        numbers[x] = 1;
        ++unique;
    }
}

for (int i = 0; i < 35; i++) {
    if (numbers[i] == 1) {
        NSString *str = [NSString stringWithFormat: @"%d", i];
        NSLog(@"%@", str);
    }
}