下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题.请完善它.int f(int m,int n) { if(m==0 f(m-1,n-1)*(m+n)*(m+n-1)/(m*n); 理解不了.谁能解释下意思
问题描述:
下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题.请完善它.int f(int m,int n) { if(m==0
f(m-1,n-1)*(m+n)*(m+n-1)/(m*n); 理解不了.谁能解释下意思
答
因为m个A n个B的排列一共有(m+n)!/(m!*n!)而m-1个A n-1个B的排列一共有(m+n-2)!/((m-1)!*(n-1)!)(m+n)!/(m!*n!)/(m+n-2)!/((m-1)!*(n-1)!)=(m+n)*(m+n-1)/(m*n)所以m个A n个B的排列数=m-1个A n-1个B的排列数*(m+n)*(...