排列组合计算公式:
排列A(n,m)=n×(n-1)....(n-m+1)=n!/(n-m)!(n为下标,m为上标,以下同)
组合C(n,m)= A( n, m) / A( m, m) =n!/m!(n-m)!;
问题:
从1到n(包含)中选出m<=n个数,在下列情况下,有多少种组合?
限制条件:
1、无限制
2、各位数字升序排列3、不能有重复数字
4、各位数字升序排列并且不能有重复数字
1.
这个不需要过多的解释。
因为“无限制”,所以,每一个元素都可以取得任一可能的数字,于是得出结果。
2.C(m+n-1,m)
第二种情况就是从n个数有重复的选取m个数的变体 因为m个数升序组合只有一种
因而是C(m+n-1,m)
本义角度的证明:
1)从n个数中选择a个;
2)从m个数中的m-1个隔板选出a-1个,作为a个数的间隔。
C(1,n)*C(0,m-1)+...+C(m,n)*C(m-1,m-1)
=C(1,n)*C(m-1,m-1)+...+C(m,n)*C(0,m-1)
=C(m,n+m-1)
3.
因为“不重复”,而且又是列举所有排列的“情况”,所以选择A(n, m)。
4.
这个问题可以看作是在问题[3]的基础上的。
因为问题[3]已经不存在“重复”的情况了,所以这里同样不存在。这个问题在问题[3]的基础上增加了新的“约束”,就是“升序排列”,根据前面问题[2]的分析,满足“所有元素都不重复”的情况,于是得出 A(n, m)/A(m, m) = C(n, m)。