1

I want to select 10 random numbers from 1 to 35.

I am trying to do the following, but I get some repeated numbers

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++;
}

Thank you for your help.

Douwe Maan
  • 6,798
  • 2
  • 33
  • 34
iosdevnyc
  • 1,853
  • 5
  • 25
  • 48

2 Answers2

2

Repeated numbers are to be expected; it is random after all, and any random sample will contain repeats.

Randolpho
  • 54,161
  • 16
  • 143
  • 176
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);
    }
}
ohho
  • 49,193
  • 73
  • 246
  • 377