- (NSMutableArray *)zuHeSuanFa:(NSMutableArray *)array chooseCount:(int)m
{int n = (int)[array count];if (m >n)
{returnnil;
}//NSLog(@"从1到%d中取%d个数的组合。。。",n,m);
NSMutableArray*allChooseArray =[[NSMutableArray alloc] init];
NSMutableArray*retArray =[array copy];//(1,1,1,0,0)
for(int i=0;i < n;i++)
{if (i
{
[array replaceObjectAtIndex:i withObject:@"1"];
}else{
[array replaceObjectAtIndex:i withObject:@"0"];
}
}
NSMutableArray*firstArray =[[NSMutableArray alloc] init];for(int i=0; i
{if ([[array objectAtIndex:i] intValue] == 1)
{//[firstArray addObject:[NSString stringWithFormat:@"%d",i+1]];
[firstArray addObject:[retArray objectAtIndex:i]];//NSLog(@"%d ",i+1);
}
}
[allChooseArray addObject:firstArray];//[firstArray release];//NSLog(@"============");
int count = 0;for(int i = 0; i < n-1; i++)
{if ([[array objectAtIndex:i] intValue] == 1 && [[array objectAtIndex:(i + 1)] intValue] == 0)
{
[array replaceObjectAtIndex:i withObject:@"0"];
[array replaceObjectAtIndex:(i+ 1) withObject:@"1"];//i = 2, (1,1,0,1,0)
for (int k = 0; k < i; k++)
{if ([[array objectAtIndex:k] intValue] == 1)
{
count++;
}
}if (count > 0)
{for (int k = 0; k < i; k++)
{if (k
{//k = 1, (1,1,0,1,0)
[array replaceObjectAtIndex:k withObject:@"1"];
}else{
[array replaceObjectAtIndex:k withObject:@"0"];
}
}
}
NSMutableArray*middleArray =[[NSMutableArray alloc] init];for (int k = 0; k < n; k++)
{if ([[array objectAtIndex:k] intValue] == 1)
{//NSLog(@"%d ",k+1);//[middleArray addObject:[NSString stringWithFormat:@"%d",k + 1]];
[middleArray addObject:[retArray objectAtIndex:k]];
}
}
[allChooseArray addObject:middleArray];//[middleArray release];//NSLog(@"============");
i= -1;
count= 0;
}
}returnallChooseArray;
}