252个,可以用电脑编程解决,经计算知结果和C(5,10)的组合数相同,至于其他的m,n也与组合数C(n,m)相同
从10个数中选取5个数组成的所有排列为P(10,5),而其中5个数能构成的排列为P(5,5),
我们需要的只有一种,所以结果为P(10,5)/P(5,5)=C(10,5)=252
static int GetOrderIntegerCount(int[] arrTotal,int nIndex,int selectCount)
{
if (selectCount == 1)
{
return arrTotal.Length - nIndex;
}
int nCount = 0;
for (int i = nIndex; i < arrTotal.Length; i++)
{
nCount += GetOrderIntegerCount(arrTotal,i + 1,selectCount - 1);
}
return nCount;
}
Main函数中调用
int[] arrBuff = new int[] { 1,2,3,4,5,6,7,8,9,10 };
int nCount = GetOrderIntegerCount(arrBuff,0,10);
Console.WriteLine(nCount);
输出252