求,盒子都可以分成是否不能区分,和能区分,还能分成是否能有空箱子,所以一共是8种情况,我们现在来一一讨论。

1.球同,盒不同,无空箱

C(n-1,m-1), n>=m
0, n

使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙即可

2.球同,盒不同,允许空箱

C(n+m-1,m-1)

我们在第1类情况下继续讨论,我们可以先假设m个盒子里都放好了1个球,所以说白了就是,现在有m+n个相同的球,要放入m个不同的箱子,没有空箱。也就是第1种情况

3.球不同,盒相同,无空箱

第二类斯特林数dp[n][m]
dp[n][m]=m*dp[n-1][m]+dp[n-1][m-1],1<=m dp[k][k]=1,k>=0
dp[k][0]=0,k>=1
0,n

这种情况就是第二类斯特林数,我们来理解一下这个转移方程。

对于第n个球,如果前面的n-1个球已经放在了m个箱子里,那么现在第n个球放在哪个箱子都是可以的,所以m*dp[n-1][m];

如果前n-1个球已经放在了m-1个箱子里,那么现在第n个球必须要新开一个箱子来存放,所以dp[n-1][m-1]

其他的都没法转移过来

4.球不同,盒相同,允许空箱

sigma dp[n][i],0<=i<=m,dp[n][m]为情况3的第二类斯特林数

这种情况就是在第3种情况的前提下,去枚举使用的箱子的个数

5.球不同,盒不同,无空箱

dp[n][m]*fact[m],dp[n][m]为情况3的第二类斯特林数,fact[m]为m的阶乘

因为球是不同的,所以dp[n][m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了

6.球不同,盒不同,允许空箱

power(m,n) 表示m的n次方

每个球都有m种选择,所以就等于m^n

7.球同,盒同,允许空箱

dp[n][m]=dp[n][m-1]+dp[n-m][m], n>=m
dp[n][m]=dp[n][m-1], n 边界dp[k][1]=1,dp[1][k]=1,dp[0][k]=1

现在有n个球,和m个箱子,我可以选择在所有箱子里面都放上1个球,也可以不选择这个操作。

如果选择了这个操作,那么就从dp[n-m][m]转移过来

如果没有选择这个操作,那么就从dp[n][m-1]转移过来

8.球同,盒同,无空箱

dp[n-m][m],dp同第7种情况,n>=m
0, n

因为要求无空箱,我们先在每个箱子里面放1个球,然后还剩下n-m个球了,再根据情况7答案就出来了

如果有错误,希望菊苣指出~

转载请注明出处...
————————————————
版权声明:本文为CSDN博主「逍遥丶綦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qwb492859377/article/details/50654627

排列组合 “n个球放入m个盒子m“问题 总结相关推荐

  1. 排列组合 n个球放入m个盒子问题 总结

    算法: HDU - 6397 Character Encoding 插板法+容斥原理  https://blog.csdn.net/xiang_6/article/details/81868989 [ ...

  2. 排列组合 n个球放入m个盒子算法 总结

    问题: 总结   https://blog.csdn.net/qwb492859377/article/details/50654627 N个球放M个盒子问题   https://blog.csdn. ...

  3. 排列组合 “n个球放入m个盒子“里,再来一遍

    1.球同,盒不同,无空箱 C(n-1,m-1), n>=m 0, n<m 使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙 ...

  4. 排列组合 n个球放入m个盒子m问题 总结

    求,盒子都可以分成是否不能区分,和能区分,还能分成是否能有空箱子,所以一共是8种情况,我们现在来一一讨论. 1.球同,盒不同,无空箱 C(n-1,m-1), n>=m 0, n<m 使用插 ...

  5. n个小球放入m个盒子中_【转】排列组合 n个球放入m个盒子m问题 总结

    球,盒子都可以分成是否不能区分,和能区分,还能分成是否能有空箱子,所以一共是8种情况,我们现在来一一讨论. 1.球同,盒不同,无空箱 C(n-1,m-1), n>=m 0, n 使用插板法:n个 ...

  6. 排列组合问题 “n个球放入m个盒子(8种)”

    1.球相同,盒相同,允许空箱 2.球相同,盒相同,无空箱 3.球相同,盒不同,无空箱 4.球相同,盒不同,允许空箱 5.球不同,盒相同,无空箱 6.球不同,盒相同,允许空箱 7.球不同,盒不同,无空箱 ...

  7. 算法题(模板)——N个球放入M个盒子中

    题目:n个球放入m个盒子中,有多少种放法 情况一:球同,盒不同,无空盒 也就是所有球都是一样的,但是盒子有区别,且不能出现空放的情况. 采用插板法,相当于在n-1个空隙中,插入m个盒子,而由于不能有空 ...

  8. n个小球放入m个盒子中_联考数学复习指导:M个球放入N个盒子

    为了广大学员能够更好的备考2015年考研, 特收集了联考数学指导:M个球放入N个盒子,希望对各位考生有所帮助. M个球放入N个盒子的放法 N个盒子编号为1到N, 把M个相同的球放入这N个不相同的盒子, ...

  9. n个小球放入m个盒子中_M个球放入N个盒子的放法

    M个球放入N个盒子的放法 1.N个盒子编号为1到N, 把M个相同的球放入这N个不相同的盒子,问共有多少种放法. M个球分成了N组,即装入N个盒子.如果要求每个盒子至少有一个球,则要求M>=N. ...

最新文章

  1. CF331A1,331A2
  2. 透过率和反射率的关系_光谱仪应用|色彩、透过率等四款测量系统
  3. 详解XStream别名
  4. linux中的ip地址范围,linux – ip地址范围参数
  5. !+\v1 用来“判断浏览器类型”还是用来“IE判断版本”的问题!
  6. matlab给plc发送命令,想学习下如何将PLC发送的指令让软件接收到?
  7. nagios流量监控报警
  8. ajax回调给全局变量,jquery.Ajax回调成功后数据赋值给全局变量的问题
  9. 微信小程序用户数据解密
  10. 小企业环境中磁带备份和恢复的利与弊
  11. 硬盘分区变为RAW文件系统后的解决办法
  12. jquery简单的选择添加下拉列表
  13. JDK及Eclipse下载安装教程
  14. Arduino-atmega328p最小系统
  15. 2017中国十大富豪排行榜
  16. 傻X了:mac上编译的程序放到linux上运行
  17. snes9x 源码_仅64kb的SNES游戏如何制作优美的音乐
  18. 微信小程序电商实战-入门篇
  19. python获取windows当前的输入法是中文还是英文
  20. Mathpix:非常好用的公式生成器,可以图片转公式

热门文章

  1. “迟来的正义不是正义”,但它终究会来!
  2. Android Studio删除工程、项目的操作步骤
  3. PILZ PAS4000系列软件,出给需要的人,电子资料
  4. pyg例子link_pred
  5. HTML中的time标签
  6. smarty模板的使用(1)
  7. 杂:乱七八糟mark一些
  8. 年薪50万的AI人才缺口上百万:AI领域两大重磅消息!
  9. 尚硅谷MySQL课后练习题笔记
  10. shell_链接命令ln与nohup命令使用方法