来自:http://blog.csdn.net/qq675927952/article/details/6312255

问题1:

m----->相同, n---> 相同,可为空

将m个苹果放进n个盘子中,盘子允许空,有多少种方法。同时注意例如1、2和2、1这两种方案是一种方案。

思路:

其实这跟将一个整数m分成n个整数之和是类似的,

设f[m][n]为将m分成最多n份的方案数,且其中的方案不重复,每个方案前一个份的值一定不会比后面的大。

则有:f[m][n] = f[m][n - 1] + f[m - n][n];   
         = 1 // m== 0 || n == 1      
       = 0 // m < 0

f[m][n - 1]相当于第一盘子中为0,只用将数分成n - 1份即可。
因为0不会大于任何数,相当于f[m][n - 1]中的方案前面加一个为0的盘子,
而且不违背f的定义。所以f[m][n - 1]一定是f[m][n]的方案的一部分,即含有0的方案数。
f[m - n][n]相当于在每个盘子中加一个数1。因为每个盘子中加一个数1不会影响f[m][n - 1]中的方案的可行性,也不会影响f的定义。
所以f[m - n][n]一定是f[m][n]的方案的一部分,即不含有0的方案数。

问题2:

问题描述:将整数N分成K个整数的和 且每个数大于等于A   
小于等于B 求有多少种分法

 1 int Dynamics(int n, int k, int min) //将n分为k个整数 最小的大于等于min,最大不超过B
 2 {
 3
 4     if(n < min) return 0;//当剩下的 比min小,则不符合要求 返回0
 5     if(k == 1) return 1;
 6     int sum = 0;
 7     for(int t = min; t <= B; t++)
 8     {
 9      sum += Dynamics(n-t, k-1, t);
10     }
11     return  sum;
12
13 }

问题3:

m----->相同, n---> 相同,不能为空

将m个苹果放进n个盘子中,有多少种方法。同时注意例如1、2和2、1这两种方案是一种方案。

思路:

先把每个都放一个苹果,这样问题就转化为:m-n个苹果放进n个盘子里,盘子允许空,即问题1

问题4:

第一类Stirling数是有正负的,其绝对值是包含n个元素的集合分作k个环排列的方法数目

递推公式为,
S(n,0) = 0, S(1,1) = 1.
S(n,k) = S(n-1,k-1) + (n-1)S(n-1,k)。

n个元素的集合分作k个环排列的方法是s(n,k),那么

1.可由前n-1个元素k-1个环的s(n-1,k-1); 即最后一个元素为单环,前n-1个构成k-1环;

2.第n个元素一定不是单环,可以由n-1个元素k个环,把第n个数任意的放入一个环中组成新环!即得到n个

元素的集合分作k个环,假设n个元素的集合分作k个环,那么由于n,不在单环中,那么可以把n所在的环中把n

剔除,即得到了n-1个元素,k个环,即充分与必要性都得证!

因而:S(n,k) = S(n-1,k-1) + (n-1)S(n-1,k)。得证!

问题5:

第二类Stirling数是把包含n个元素的集合划分为正好k个非空子集的方法的数目。
//n->有区别,K->非空,没区别
递推公式为,
S(n,n) = S(n,1) = 1,
S(n,k) = S(n-1,k-1) + kS(n-1,k).

上面的递推式可以用组合证明:
一方面,如果将第n个元素单独拿出来划分成1个集合,那么方法数是S(n-1,k-1);
另一方面,如果第n个元素所在的集合不止一个元素,那么可以先将剩下的n-1个元素划分好了以后再选一个集合把第n个元素放进去,方法数是k*S(n-1,k);
有加法原理得证

问题6:

Bell数和Stirling数

B(n)是包含n个元素的集合的划分方法的数目。

集合的划分:非空,

B(0) = 1, B(1) = 1,

B(n) = Sum(1,n) S(n,k).  其中Sum(1,n)表示对k从1到n求和,

问题7:

当K是有区别的时候,则一般都要在没有区别的基础上乘以K的全排列。

转载于:https://www.cnblogs.com/huashanqingzhu/p/4036425.html

将m个苹果放入n个盘子的问题【转】相关推荐

  1. 递归算法《M个苹果放入N个盘子》

    题目: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...

  2. m个苹果放入n个盘子

    题目描述 放苹果问题:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法? (注:5,1,1和1,1,5是同一种分法) 解题分析: 设f(m,n) 为m个苹果,n个盘子 ...

  3. m个苹果放入n个盘子问题

    题目: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...

  4. POJ 1664 求m个苹果放入n个盘子的不同放法数目 递归 分类讨论

    通过分类讨论,将规模较大的问题转换成规模较小的相同问题,学会"降维",将索引值不断降小,就可以递归求解 设f(m,n)为把m个苹果放到n个盘子中的方法数,m>=0,n> ...

  5. [ACM] POJ 1664 放苹果(n个相同小球放入m个相同盒子)

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 25952   Accepted: 16509 Description ...

  6. 163邮箱苹果设置不成功_怎么样才能让自己服务器发出的邮件不被 Gmail、Hotmail、163、QQ 等邮箱放入垃圾箱...

    链接:https://www.zhihu.com/question/19574247/answer/16747342 来源:胡逸 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. ...

  7. html文件设置成mac桌面,Mac软件教程:让你的Mac桌面放入无限多的文件

    对于那些喜欢将各种文件放在桌面的 Mac 用户,比如PC6小编,每天都会在上面存放各种文档,图片等一些文件,不管屏幕有多大,很快就会堆积大量的文件在桌面上,可是又懒得或没时间去规整他们,那该怎么办? ...

  8. 桌上有一只盘子,每次只能放入一个水果。请用Wait()、Signal()原语实现爸爸、儿子、女儿三个并发进程的同步。

    1.桌上有一只盘子,每次只能放入一个水果.爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个女儿专等吃盘中的苹果,一个儿子专等吃盘中的桔子.试用P,V操作写出他们(4个并发进程)能同步的程序. semaph ...

  9. 记录 vue项目打包放入 hbuilder 做app真机测试时 无法请求后台服务接口

    1.因为发布app时 vue开发模式下配置的跨域是无效的,打包后会找不到接口 例如下面是之前的错误版: '/propertyCmsAPI': {target: 'http://192.168.1.11 ...

最新文章

  1. RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列
  2. Python接口自动化测试框架(基础篇)-- 常用数据类型Number
  3. ora-01033:oracle initialization or shutdown in progress 解决方法
  4. python爬取贴吧所有帖子-Python实现的爬取百度贴吧图片功能完整示例
  5. Visual Studio 2010 Ultimate开发与测试敏捷特性
  6. 量子化学计算机理,几种化学反应机理的量子化学理论计算
  7. 深入理解计算机系统第四版_《深入理解计算机系统》读书笔记 —— 第一章 计算机系统漫游...
  8. sigar 网络 java_java-Sigar网络速度
  9. QCC3020/QCC3040 TWS耳机按键切换EQ,APP切换EQ功能实现
  10. ENSP简单建立直连路由线路
  11. 安卓手机版php服务器地址,Almp——安卓系统上搭建本地php服务器环境
  12. 复合型数据结构:C数组
  13. python做ui界面_从零开始创建UI
  14. android教案,android教学教案.doc
  15. 阿里云网盘内测资格申请-最新内测资格
  16. 【Excel】常用的excel表格操作
  17. 这次!38K,妥妥的
  18. [深度学习 - 发现有趣项目] masking-gan 人脸生成笑脸表情
  19. 点击验证码无法刷新,或只能刷新一次的问题
  20. 中国农村信用合作报:科技赋能 全面推进乡村振兴

热门文章

  1. javascript window Timing
  2. linux 设备/dev
  3. 1.4 Padding
  4. pandas.Series.quantile
  5. Windows server 2016简单部署DNS服务,正向查找和委派
  6. 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > MQTT协议接入 >
  7. Docker学习总结(39)——简析容器、无服务器和虚拟机的安全性差异
  8. Git学习总结(9)——如何构建你自己的 Git 服务器
  9. mysql生活使用方法_MySQL Workbench使用教程
  10. redhat 添加ssh端口_Linux修改SSH远程登录端口 --服务器安全篇