Выбор случайных чисел iphone SDK - PullRequest
1 голос
/ 28 апреля 2010

Я хочу выбрать 10 случайных чисел от 1 до 35.

Я пытаюсь сделать следующее, но я получаю несколько повторных чисел

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 ]

2 голосов
/ 28 апреля 2010

Повторные числа ожидаются; в конце концов, это random , и любая случайная выборка будет содержать повторы.

0 голосов
/ 29 апреля 2010
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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...