Ответ 1
arc4random() %(100)-1
это сработало для меня.
Я хочу генерировать случайные числа между 1-100 в Objective-C. Каждое случайное число должно быть уникальным и не совпадать с ранее созданным случайным числом.
arc4random() %(100)-1
это сработало для меня.
Проверьте ссылки
Как создать случайные числа на iPhone?
int r = arc4random() % 100;
Objective-C: получить случайное число
-(int)getRandomNumberBetween:(int)from to:(int)to {
return (int)from + arc4random() % (to-from+1);
}
Как использовать:
1) Выполните метод выше в свой .m файл
2) Добавьте следующую строку в файл .h:
-(int)getRandomNumberBetween:(int)from to:(int)to;
3) Вызвать метод следующим образом:
int randomNumber = [self getRandomNumberBetween:9 to:99];
//this gets you a random number between 9 and 99
Используйте arc4random и сохраните результаты в NSSet, который позаботится о дубликатах для вас.
Другим простым способом является использование метода arc4random_uniform():
Вызов arc4random_uniform (N) возвращает случайное число от 0 до N-1. Чтобы получить число от 1 до N, вы можете использовать:
NSUInteger r = arc4random_uniform(N) + 1;
где N - максимальное количество, которое вы ищете. В Swift вы можете сделать это как:
var randomIndex:UInt32 = arc4random_uniform(N) + 1
например. если вы хотите получить случайное число от 1 до 100, просто позвоните как:
NSUInteger r = arc4random_uniform(100) + 1;
или быстро:
var randomIndex:UInt32 = arc4random_uniform(100)+1
Это код, который генерирует уникальные случайные числа...
-(void)UniqueRandom{
int T[11];
BOOL flag;
for(int i=0;i<10;i++){
int ranNo= random()%100+1;
flag=TRUE;
int s=(sizeof T);
for(int x=0;x<s;x++){
if(ranNo==T[x]){
i--;
flag= FALSE;
break;
}
}
if(flag) T[i]=ranNo;
}
for(int j=0;j<100;j++) NSLog(@"unique random %d",T[j]);
}
}
Счастливое кодирование.
Этот метод будет генерировать массив уникальных случайных чисел в интервале высокого и низкого диапазона.
-(void)generateRandomUniqueNumberInRange :(int)rangeLow :(int)rangeHigh{
NSMutableArray *unqArray=[[NSMutableArray alloc] init];
int randNum = arc4random() % (rangeHigh-rangeLow+1) + rangeLow;
int counter=0;
while (counter<rangeHigh-rangeLow) {
if (![unqArray containsObject:[NSNumber numberWithInt:randNum]]) {
[unqArray addObject:[NSNumber numberWithInt:randNum]];
counter++;
}else{
randNum = arc4random() % (rangeHigh-rangeLow+1) + rangeLow;
}
}
NSLog(@"UNIQUE ARRAY %@",unqArray);
}