iosのアルゴリズム-ランダムな数百パーセントに対して有効な重複しない処理方法を生成する


//                                
NSMutableArray *number = [NSMutableArray array];
        for (int i = 0; i<20; i++) {
            [number addObject:[NSNumber numberWithInteger:i+1]];
        }

        for (int j = 0; j<20; j++) {
            NSInteger arc = arc4random()%(20-j);
            [number exchangeObjectAtIndex:arc withObjectAtIndex:20-j-1];
        }
        NSLog(@"%@",number);
        for (int k = 0; k<10; k++) {
            [number exchangeObjectAtIndex:20-1-k withObjectAtIndex:k];
        }
        NSLog(@"%@",number);
//    :                    
        NSMutableArray *number = [NSMutableArray array];
        for (int i = 0; i<20; i++) {
            [number addObject:[NSNumber numberWithInteger:i+1]];
        }
                                           (          ,             ,               ,              )
        NSMutableArray *num = [NSMutableArray array];
        for (int j = 0; j<20; j++) {
            NSInteger arc = arc4random()%number.count;

            [num addObject:[number objectAtIndex:arc]];//            
            [number removeObjectAtIndex:arc];//        
        }
        NSLog(@"%@",num);