经典问题8连:小球和盒子

 

问题列举:

  1. 把n个不同的小球放在m不同的个盒子里,空盒
  2. 把n个不同的小球放在m不同的个盒子里,空盒
  3. 把n个不同的小球放在m相同的个盒子里,空盒
  4. 把n个不同的小球放在m相同的个盒子里,空盒
  5. 把n个的小球放在m不同的个盒子里,空盒
  6. 把n个相同的小球放在m不同的个盒子里,空盒
  7. 把n个相同的小球放在m的个盒子里,空盒
  8. 把n个相同的小球放在m的个盒子里,空盒

 

方案数量:

把n个不同的小球放在m不同的个盒子里,有空盒:m^n

把n个不同的小球放在m不同的个盒子里,无空盒:S2(n, m)*m!

其中S2表示第二类斯特林数

方案数公式可以用母函数或泰勒展开进行变换:

细心的你发现了其实后面的那个公式正是容斥法求出来的公式

 

把n个不同的小球放在m相同的个盒子里,有空盒:Bell(n)

即第n个贝尔数,其中(里面的S()仍然是第二类斯特林数),并且贝尔数具有递推公式

 

把n个不同的小球放在m相同的个盒子里,无空盒:S2(n, m)

把n个相同的小球放在m不同的个盒子里,有空盒:C(n+m-1, m-1)

很经典的隔板法

把n个相同的小球放在m不同的个盒子里,无空盒:C(n-1, m-1)

仍然是很经典的隔板法,不过是在n-1个空隙中,选择m-1个放上隔板

把n个相同的小球放在m相同的个盒子里,有空盒:dp[n+m][m]= dp[n][m]+ dp[n+m-1][m-1]

把n个相同的小球放在m相同的个盒子里,无空盒:dp[n][m]= dp[n-m][m]+ dp[n-1][m-1]

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值