0
Я знаю, что в Matlab существует функция randperm, которая в основном возвращает случайную перестановку чисел.Randperm in iOS
Например, randperm (6) возвращает [3 2 6 4 1 5].
Есть ли что-то подобное в iOS?
Я знаю, что в Matlab существует функция randperm, которая в основном возвращает случайную перестановку чисел.Randperm in iOS
Например, randperm (6) возвращает [3 2 6 4 1 5].
Есть ли что-то подобное в iOS?
Для этого:
- (NSArray*) randperm: (int) total
{
NSMutableArray *array = [[NSMutableArray alloc] init];
int counter = 0;
while (counter < total) {
NSNumber *randomInteger = [NSNumber numberWithInt:(arc4random_uniform(total)+1)];
if (![array containsObject:randomInteger]) {
[array addObject:(randomInteger)];
counter++;
}
}
return array;
}
numberWithInteger: более 'правильный' – gaussblurinc
@gaussblurinc что у виду? – lakesh
NSNumber: :(numberWithInteger :) метод использует NSInteger как номер 'seed'. вы не знаете, где ваш код может выйти из строя, если вы используете примитивы типа 'int'. NSInteger поддерживается альтернативой 'int' primitive – gaussblurinc