有重复的组合计数 By ACReaper

我们都知道没有重复的组合,其计算方法本质上就在有n个元素的集合中选则r个元素的子集个数,所以可以推出其计算公式为C(n,r)

至于它的公式推导,可以这样看,我们可以先选出这些子集后,对这些r个元素的集合,进行没有重复的排列也就是p(r,r).则从n个元素

的集合中无重复的进行r排列,即p(n,r) = p(r,r) * C(n,r),p(n,r)的公式我们推导过了,所以可以很方便的推算出C(n,r)。有了这些最基本

的知识,我下面介绍有重复的组合。


假设我们有三种水果,苹果,梨,香蕉若干放在一个碗中,现在我们要拿出四个水果,问有几种拿出的类型,我们只关注类型的个数,如:(苹果:3个,香蕉:1个,梨:0个),但是不考虑先后拿,问有几种方式。


对于这个问题,我们可以这样看,我们把它抽象为数学本质,其实就是从{苹果,梨,香蕉}这三元素的集合中选出4个可以重复的组合(这里指的重复是指水果)。

我们用两块竖线就可以表示三个区域,这三个区域就分别代表苹果,梨,香蕉,接着就是要把4个水果分别放入三个区域,我们此时把4个水果也看成竖线,则一共有7根竖线,

现在问题就简单了,我们只需要在这7根竖线中选择4根转化为水果,这就可以把他们的类型区分开了,所以一共有C(6,4) = C(6,2) = 15种。


于是我们可以总结出重复组合的计数定理:

假设有一个集合T,有n个元素,重中选择元素组合成r可重复排列,则它的个数是C(n - 1 + r,r) = C(n + r - 1,r) = C(n + r - 1,n - 1);

证明方法:就是用组合的方式证明,打字太幸苦,这里就不再证明了。


2013 04 23 

By ACReaper 

转载于:https://www.cnblogs.com/sixcoder/archive/2013/04/23/3825988.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值