Kombinacje różnych obiektów NSArray
Chcę znaleźć kombinacjeelements
w różnycharrays
. Powiedzmy, że mam trzyNSArray
obiekty jako:
NSArray *set1 = [NSArray arrayWithObjects:@"A",@"B",@"C", nil];
NSArray *set2 = [NSArray arrayWithObjects:@"a",@"b", nil];
NSArray *set3 = [NSArray arrayWithObjects:@"1",nil];
Teraz wymagane odpowiedzi są następujące tablice
NSArray *combinations = [{A},{B},{C},{a},{b},{1},{A,a},{A,b},{A,1},{B,a},{B,b},{B,1},{a,1},{b,1},{A,a,1},{A,b,1},{B,a,1},{B,b,1},{C,a,1},{C,b,1}];
Edytować Obecnie wykonałem następujący kod i jestem w stanie uzyskać kombinacje dwóch długości.
NSArray *set1 = [NSArray arrayWithObjects:@"A",@"B",@"C", nil];
NSArray *set2 = [NSArray arrayWithObjects:@"a",@"b", nil];
NSArray *set3 = [NSArray arrayWithObjects:@"1",nil];
NSArray *allSets = [NSArray arrayWithObjects:set1,set2,set3,nil];
NSMutableArray *combinations = [NSMutableArray new];
for (int index = 0; index < allSets.count; index++) {
[combinations addObject:[NSMutableArray array]];
}
NSMutableArray *singleCombinations = combinations[0];
for (NSArray *set in allSets) {
[singleCombinations addObjectsFromArray:set];
}
for (int outerIndex = 0; outerIndex < allSets.count-1; outerIndex++) {
NSArray *set = allSets[outerIndex];
for (id object1 in set) {
for (int innerIndex = outerIndex+1; innerIndex<allSets.count; innerIndex++) {
NSArray *nextSet = allSets[innerIndex];
for (id object2 in nextSet) {
NSString *combi = [NSString stringWithFormat:@"%@%@",object1,object2];
NSLog(@"%@",combi);
}
}
}
}
Jakaś pomoc???