排列和组合

排列组合计算公式:

排列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)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值