来自: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 求有多少种分法

 int Dynamics(int n, int k, int min) //将n分为k个整数 最小的大于等于min,最大不超过B
{ if(n < min) return ;//当剩下的 比min小,则不符合要求 返回0
if(k == ) return ;
int sum = ;
for(int t = min; t <= B; t++)
{
sum += Dynamics(n-t, k-, t);
}
return sum; }

问题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的全排列。

将m个苹果放入n个盘子的问题【转】的更多相关文章

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

    这个问题,看似是一个简单的排列组合问题,但是加上不同的限制条件,会演变成不同的问题,感觉很奇妙,就总结一下列举下来 问题一 问题描述:把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问有多 ...

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

    题目 :X个相同的苹果放入Y个篮子,(1)篮子可以为空 ,篮子不同. 放法有C(X+Y-1,Y-1 );// (2)篮子不可以为空,篮子不同.放法有C(X-1,Y-1) //插挡板法 分析有了这个组合 ...

  3. Rshare Pro是否可以放入至客户企业App Store?

    现在很多客户内部部署了苹果授权的企业内部的AppStore,我们的Rshare Pro 是完全允许放入企业搭建的AppStore平台中.但每份需要收费20美元,换成人民币是120元.

  4. m个相同苹果放的n个相同盘子中的算法

    m个相同的苹果,放在n个相同的盘子中,由于相同,使用排列组合的方法不好处理.这个问题困扰了我很久 最后由大神“或缺”给出了答案: 以8个苹果放在3个盘子中为例 思路: 8苹果3盘子 =8苹果2盘子+5 ...

  5. EC笔记:第三部分:17、使用独立的语句将newed对象放入智能指针

    一般的智能指针都是通过一个普通指针来初始化,所以很容易写出以下的代码: #include <iostream> using namespace std; int func1(){ //返回 ...

  6. tuple放入dict中

    tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...

  7. ios-将代码创建的视图控件放入拖拽控件的下面

    如图所示 图片是拖拽上去的imageView,橘黄色控件是在代码中创建的添加上去的,此时黄色view在imageView 上方 调用方法bringSubviewToFront:试图将imageView ...

  8. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  9. 将DLL放入到资源中,运行时自动加载

    今天在看到 一个小软件,考勤用的 AttendanceSheet_V_1_2,只有一个EXE文件,绿色的随便考到哪里都可以运行. 顺手反编译后发现,他将需要的DLL也放入到资源文件了,在启动的时候自动 ...

随机推荐

  1. Jdk配置串在profile中

    JAVA_HOME=/home/will/appSource/jdk1.7.0_25PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar ...

  2. svnUbuntu下安装与使用(ZT)

    1.安装包 1.$ sudo apt-get install subversion 2.创建项目目录 $ sudo mkdir /home/xiaozhe/svn $ cd /home/xiaozhe ...

  3. 【转】Polymer API开发指南 (二)(翻译)

    原文转自:http://segmentfault.com/blog/windwhinny/1190000000596258 公开 property 当你公开一个 Polymer 元素的 propert ...

  4. 使用WebMatrix发布网站到Windows Azure

    1. 在本地机安装 WebMatrix, 安装Windows Azure SDK 2. 登录Windows Azure, 网站 > 创建一个新网站或选择已有网站 3. 在发布应用程序,选择下载发 ...

  5. magento问题集2

    SQLSTATE[42S02]: Base table or view not found: 1146 Table XXXXXX 安装Galathemes.com theme插件. 首页无法打开,提示 ...

  6. magento数据库备份导入还原

    Magento数据库备份.移植终极解决方案+3 分类:Magento教程 标签:magento搬家.magento数据库备份.magento更换域名.magento移植 4,355人浏览 作为电子商务 ...

  7. 转:C#精髓 第四讲 GridView 72般绝技

    说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第四讲 GridView 72般绝技 作者 ...

  8. LeetCode Find the Duplicate Number 找重复出现的数(技巧)

    题意: 有一个含有n+1个元素的数组,元素值是在1-n之间的整数,请找出其中出现超过1次的数.(保证仅有1个出现次数是超过1的数) 思路: 方法一:O(nlogn).根据鸽笼原理及题意,每次如果< ...

  9. OpenFlow Switch学习笔记(六)——Instructions和Actions

    本文主要重点讨论OpenFlow Switch规范的指令集,它们深刻影响着数据包在Switch中的处理行为,下面开始从以下几个部分谈起. 1.Instructions 每一个Flow Entry里都包 ...

  10. USB描述符概述

    在USB总线接口协议中,规定了一些标准的USB描述符,如表所示. 对于USB设备来说,有些USB描述符是必需的,例如: 设备描述符 配置描述符 字符串描述符 接口描述符 端点描述符 其余一些描述符并非 ...