0

12 個の数値の配列が必要です -> 0 から 11 の配列はランダムでなければならず、同じ数値を 2 回使用したくありません

ありがとう

4

3 に答える 3

2

シャッフルの問題のように聞こえます。

次のように配列を宣言するだけです

NSMutableArray * numbers = [NSMutableArray array];
for (int i = 0; i < 12; i++) {
    [numbers addObject:@i];
}

その後、 Fisher-Yatesアルゴリズムを使用してその配列をシャッフルできます。

for (NSUInteger i = numbers.count - 1; i > 0; --i) {
    NSUInteger n = arc4random_uniform(i+1);
    [numbers exchangeObjectAtIndex:i withObjectAtIndex:n];
}
于 2013-06-23T13:52:33.627 に答える
1

配列を作成し、0 から 11 までの数字でループに入れることをお勧めします。2 番目のステップでは、その配列をシャッフルします。NSMutableArray をシャッフルする最良の方法は何ですか?

于 2013-06-23T13:49:06.670 に答える
-1

次のようなものを試すことができます:

NSMutableArray *array = [[NSMutableArray alloc] init];   

    for (int i = 0; i < 12; i++) {

        int randomNumber = min + rand() % (max-min);
        [array addObject:[NSNumber numberWithInt:randomNumber]];  

    }

構文が正しいかどうかわからない、現在 Windows マシンを使用している

于 2013-06-23T13:53:45.690 に答える