not good but great

プログラミング、アート、映画・本の感想について書きます。

Objective-Cで重複しない乱数を生成する

//重複しない乱数
NSMutableArray *randNums;

可変長配列を生成します。

//重複しない乱数の生成
-(void)createRndArray{
    //配列を初期化
    randNums = [NSMutableArray array];
    //要素になる数字
    NSInteger num;
    
    //要素を満たすまで繰り返す
    while (randNums.count < 3) {
        //乱数
        num = arc4random() % 3;
        
        //要素を検索
        NSUInteger index = [randNums indexOfObject:@(num)];
        
        if(index == NSNotFound){
            [randNums addObject:@(num)];
        }
    }
}

配列の要素を検索できることを使って、規定の要素数に達するまでループさせます。最終的に重複なしの配列要素を持った配列ができます。繰り返し配列を生成する場面が合ったので、作りました。これの悪いところは、2回連続同じ配列を生成する可能性があることです。そこを重複しないように別の配列を用意する必要があるかもしれません。めんどくさいのでそこまではやってません笑。