tags:

views:

60

answers:

2

Hey,

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.

+2  A: 

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

Randolpho
A: 
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
I get more repeated numbers by using this code.
harekam_taj