任意の数の NSArray オブジェクトを受け取り、その配列のメンバーのすべての可能な完全な組み合わせのネストされた配列を返すメソッドを作成しようとしています。
この質問への回答で言われたように、2 部グラフ、より正確には完全な 2 部グラフを作成しようとしています。
たとえば、2 つの配列があるとします。
NSArray *a1 = [NSArray arrayWithObjects:@"Blue", @"Green", @"Yellow", nil];
NSArray *a2 = [NSArray arrayWithObjects:@"Apple", @"Orange", @"Pear", nil];
これらの配列の配列を取るメソッドが必要です。
NSArray *nestedArray = [NSArray arrayWithObjects:a1, a2, nil];
同じ長さのすべての可能な組み合わせの配列を返しました。したがって、この例では、大まかに次のような配列が必要です。
[
[@"Blue", @"Apple"],
[@"Blue", @"Orange"],
[@"Blue", @"Pear"],
[@"Green", @"Apple"],
[@"Green", @"Orange"],
[@"Green", @"Pear"],
[@"Yellow", @"Apple"],
[@"Yellow", @"Orange"],
[@"Yellow", @"Pear"]
]
これらの配列内のオブジェクトの数が増えるにつれて、結果の数も指数関数的に増加すると思います。おそらく、このメソッドを NSArray のカテゴリにするでしょう。また、結果がすべて同じ長さになるようにしたいと思います。つまり、ソース配列が 3 つある場合、メソッドによって返されるネストされた各配列の長さは 3 でなければなりません。
これを行うための最もエレガントな方法のアイデアはありますか?