排列和组合

来源:互联网 发布:mac破解软件安装 编辑:程序博客网 时间:2024/06/01 09:01

排列组合计算公式:

排列A(n,m)=n×(n-1)....(n-m+1)=n!/(n-m)!(n为下标,m为上标,以下同)组合C(n,m)=<span style="font-family: arial, 宋体, sans-serif, 'Microsoft YaHei', tahoma; line-height: 20px;"> A( n, m) / A( m, m)</span> =n!/m!(n-m)!;
问题:

从1到n(包含)中选出m<=n个数,在下列情况下,有多少种组合?

限制条件:

1、无限制

2、各位数字升序排列
3、不能有重复数字

4、各位数字升序排列并且不能有重复数字

1. n^m(n的m次方)
这个不需要过多的解释。
因为“无限制”,所以,每一个元素都可以取得任一可能的数字,于是得出结果。


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)
因为“不重复”,而且又是列举所有排列的“情况”,所以选择A(n, m)。

4. C(n, m)
这个问题可以看作是在问题[3]的基础上的。
因为问题[3]已经不存在“重复”的情况了,所以这里同样不存在。这个问题在问题[3]的基础上增加了新的“约束”,就是“升序排列”,根据前面问题[2]的分析,满足“所有元素都不重复”的情况,于是得出 A(n, m)/A(m, m) = C(n, m)。

0 0
原创粉丝点击