组合计数2-隔板法

组合计数2-隔板法

1.算法分析

博客参考:https://blog.csdn.net/sdz20172133/article/details/81431066?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162452359116780264076722%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162452359116780264076722&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-81431066.pc_search_result_control_group&utm_term=%E9%9A%94%E6%9D%BF%E6%B3%95&spm=1018.2226.3001.4187

1.1 隔板法定义

隔板法就是在n个元素之间的n - 1空中插入k个板,将n个元素分为k+1组的方法。

隔板法满足:

  1. 所分成的每一组至少一个元素
  2. 分成的组彼此相异

1.2 普通隔板法

例1: 把n个相同的小球放入m个不同的箱子,每个箱子至少一个,问有几种情况?

答案: C(n-1, m-1):n-1个地方插入m-1个隔板

例2: 求方程 x+y+z=10的正整数解的个数。

答案: C(9, 2)。等价于有10个小球,然后放入3个箱子里面

推广: 方程 a 1 + a 2 + . . . + a n = m a_1+a_2+...+a_n=m a1+a2+...+an=m 的正整数解的个数为 C(m-1, n-1)

例3: n个元素,从中选择m个元素,要求选出的元素没有相邻元素的选法一共多少种?

答案: C(n-m+1, m)。要选择m个元素,那么就会剩下n-m个元素没有被选择,这n-m+1个元素产生n-m+1个空格(包含首尾空格),然后把m个小球插入到n-m+1个空格内,即C(n-m+1, m)

1.3 添元素隔板法

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

答案: C(12, 2) = 66。因为x、y、z可以为0,那么可以添加3个球,提前放入x、y、z三个箱子里面,这样就满足普通隔板法的条件了,那么问题转换为将13个相同的球放入3个不同的箱子里面,就是C(12, 2) = 66。

推广: 方程 a 1 + a 2 + . . . + a n = m a_1 + a_2 + ... + a_n = m a1+a2+...+an=m 的非负整数解的个数为:C(n + m - 1, n-1)

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

答案: C(8, 2) = 28。可以在第二个箱子先放入2个小球,那么还剩下8个小球。在第3个箱子里面添加一个小球,那么问题就变为将9个小球放入3个不同的箱子,每个箱子至少1个,求方案数,即为C(8, 2)。

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

答案: C(13, 3) = 286。首先分别提前放入 0、1、2、3个小球在这4个盒子内,然后剩下14个小球,放入4个盒子。

例7: 有一类自然数,从第三个数字开始,每个数字都恰好是它前面两个数字之和,直至不能再写为止,如257,1459等等,这类数共有几个?

答案: C(10, 2) = 45。如果一个数字的前2位确定了,那么这个数字就确定了,设前2位分别为a和b,那么有a + b <= 9,且a为正整数,b为非负数,求这个方程的正整数解个数。因为是不等式,那么可以增加一个c,使得问题转换为:a+b+c = 9,a>=1,b>=0,c>=0,求等式的解数目。那么给b和c添加一个元素,变为11个小球选择3个箱子放入,即为C(10, 2)

推广: a 1 + a 2 + . . . a n < = m , a 1 > = 0 , a 2 > = 0 , . . . , a n > = 0 a_1+a_2+...a_n<=m,a_1>=0,a_2>=0,...,a_n>=0 a1+a2+...an<=ma1>=0,a2>=0,...,an>=0 的解方案数为:C(n + m, n)

1.4 选板法

例8: 有10粒糖,如果每天至少吃一粒(多不限),吃完为止,求有多少种不同吃法?

答案: 2 9 = 512 2^9=512 2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值