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,888
  • 2
  • 34
  • 35
iosdevnyc
  • 1,873
  • 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
  • 55,384
  • 17
  • 145
  • 179
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
  • 50,879
  • 75
  • 256
  • 383