iOS: Как мне сгенерировать 8 уникальных случайных целых чисел?

Мне нужно сгенерировать 8 случайных целых чисел, но они должны быть уникальными, иначе не повторяется.

Например, мне нужно 8 чисел в диапазоне от 1 до 8.

Я видел arc4random, но не уверен, как сделать их уникальными?

Решение

-(NSMutableArray *)getRandomInts:(int)amount from:(int)fromInt to:(int)toInt {

  if ((toInt - fromInt) +1 < amount) {
      return nil;    
  }

  NSMutableArray *uniqueNumbers = [[[NSMutableArray alloc] init] autorelease];
  int r;
  while ([uniqueNumbers count] < amount) {

      r = (arc4random() % toInt) + fromInt;
      if (![uniqueNumbers containsObject:[NSNumber numberWithInt:r]]) {
          [uniqueNumbers addObject:[NSNumber numberWithInt:r]];
      }
  }
  return uniqueNumbers;
}
10
задан PengOne 27 May 2011 в 16:38
поделиться