RosettaCodeData/Task/Power-set/Objective-C/power-set.m

17 lines
539 B
Mathematica
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
#import <Foundation/Foundation.h>
+ (NSArray *)powerSetForArray:(NSArray *)array {
UInt32 subsetCount = 1 << array.count;
NSMutableArray *subsets = [NSMutableArray arrayWithCapacity:subsetCount];
for(int subsetIndex = 0; subsetIndex < subsetCount; subsetIndex++) {
NSMutableArray *subset = [[NSMutableArray alloc] init];
for (int itemIndex = 0; itemIndex < array.count; itemIndex++) {
if((subsetIndex >> itemIndex) & 0x1) {
2014-04-02 16:56:35 +00:00
[subset addObject:array[itemIndex]];
2013-04-10 23:57:08 -07:00
}
}
[subsets addObject:subset];
}
return subsets;
}