//組合演算法 從M個數中取出N個數,無順序
[self myCombineAlgorithm:MutableArray num:5];
//組合演算法 從M個數中取出N個數,無順序
-(void)myCombineAlgorithm:(NSMutableArray*)src num:(int)getnum
{
if (src.count == 0)
{
return;
}
else if(src.count < getnum)
{
return;
}
// int m = src.count;
int n = getnum;
/* 初始化
objLineIndex = 0;
objarray = [[NSMutableArrayalloc]init];
NSMutableArray* tmp = [[NSMutableArrayalloc]init];
[self myCombine:src srcIndex:0 i:0 n:n tmp:tmp];
// int i = objarray.count;
}
/**
* <p> 遞迴演算法,把結果寫到obj二維陣列物件 </p>
* @param src
* @param srcIndex
* @param i
*
* @param tmp
* @since royoan 2014-6-15 上午11:22:24
*/
-(void)myCombine:(NSMutableArray*)src srcIndex:(int)srcIndex i:(int)i n:(int)n tmp:(NSMutableArray*)tmp
{
NSArray *betslist = [self.transaction allBets];
int j;
for (j = srcIndex; j < src.count - (n - 1); j++ ) {
tmp[i] = src[j];
if (n == 1) {
// objarray[objLineIndex] = tmp;//tmp為每一次產生的陣列
////////////////////////////////////////////////隨機組合的五個號碼,同當前選擇的號碼比較
int maxmul = 0;
for(int i=0;i<betslist.count;i++)
{
NSString *str = [[betslist[i] valueForKey:@"betNumbersDesc"]valueForKey:@"mutableString"];
NSMutableArray * array = [str componentsSeparatedByString:@","];
int count =0;
if(array.count<tmp.count)
{
for(int i=0;i<array.count;i++)
{
for(int j=0;j<tmp.count;j++)
{
if([array[i] isEqualToString:tmp[j]])
{
count++;
}
}
}
if(count == array.count)
{
maxmul++;
}
}
else
{
for(int i=0;i<tmp.count;i++)
{
for(int j=0;j<array.count;j++)
{
if([array[j] isEqualToString:tmp[i]])
{
count++;
}
}
}
if(count == tmp.count)
{
maxmul++;
}
}
}
if(maxmul > Maxmulcount)
{
Maxmulcount = maxmul;
}
////////////////////////////////////////////////隨機組合的五個號碼,同當前選擇的號碼比較
// objLineIndex ++;
} else {
n--;
i++;
[self myCombine:src srcIndex:j+1 i:i n:n tmp:tmp];
n++;
i--;
}
}
}