算法 - 数学 - 组合数 - 隔板法求组合数

本文详细介绍了组合数中的隔板法,通过多个实例解析如何利用隔板法解决将相同元素分配到不同组的问题,包括基本例子、添加元素、分类插板等,并探讨了在LeetCode中的应用。
摘要由CSDN通过智能技术生成

一、求组合数

组合数.png


二、隔板法

    隔板法是組合數學的方法,用來處理n個無差別的球放進k個不同的盒子的問題。可一般化為求不定方程的解數,並利用母函數解決問題。

    隔板法與插空法的原理一樣。

    应用隔板法必须满足3个条件:    

  1. 这n个元素必须互不相异; 
  2. 所分成的每一组至少分得1个元素; 
  3. 分成的组别彼此相异。

基本例子

    把10个相同的小球放入3个不同的箱子,每个箱子至少一个,问有几种情况?  

        分析: 10个相同的小球, 中间有9个空格可以插入板, 插入两块板就分成3部分, 所以是C(9, 2)

    例1. 求方程 x+y+z=10的正整数解的个数

        分析:将10个球排成一排,球与球之间形成9个空隙,将两个隔板插入这些空隙中(每空至多插一块隔板),规定由隔板分成的左、中、右三部分的球数分别为x、y、z之值(如下图)。则隔法与解的个数之间建立了一一对立关系,故解的个数为C(n-1,m-1)=C(9,2)=36(个)。

添加元素隔板法

    例2.  求方程 x+y+z=10的非负整数解的个数。

        分析:注意到x、y、z可以为零,故例1解法中的限定“每空至多插一块隔板”就不成立了,怎么办呢?只要添加三个球,给x、y、z各添加一个球,这样原问题就转化为求 x+y+z=13的正整数解的个数了,则问题就等价于把13个相同小球放入3个不同箱子,每个箱子至少一个,有几种情况?易得解的个数为C(n+m-1,m-1)=C(12,2)=66(个)。

    例3.  把10个相同小球放入3个不同箱子,第一个箱子至少1个,第二个箱子至少3个,第三个箱子可以放空球,有几种情况? 

        分析: 我们可以在第二个箱子先放入10个小球中的2个,小球剩8个放3个箱子,然后在第三个箱子放入8个小球之外的1个小球,则问题转化为 把9个相同小球放3不同箱子,每箱至少1个,几种方法? C(8,2)=28 

    例4.  将20个相同的小球放入编号分别为1,2,3,4的四个盒子中,要求每个盒子中的球数不少于它的编号数,求放法总数。(减少球数用隔板法)

        分析: 先将第二个盒子放1个,第三个盒子放2个,第四个盒子放3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值