故事起源
把M个苹果放在N个盘子里,允许有的盘子空着不放,那么总共有多少种不同的分法呢? 注:5,1,1和1,5,1是同一种分法,且1<=M,N<=10。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
02
分析
添加图片注释,不超过 140 字(可选)
2.1
苹果和盘子数量关系
苹果和盘子的数量没有说明大小关系,那就意味着有3种情况:
-
苹果比盘子多
-
苹果比盘子少
-
苹果和盘子数量相同
编辑切换为居中
添加图片注释,不超过 140 字(可选)
如果苹果多,那么一定会有盘子放超过一个苹果。如果盘子多,那么一定会有空盘子。如果相等,情况就不一定。
添加图片注释,不超过 140 字(可选)
2.2
判断分法是否相同
所有的苹果是相同的,所有的盘子也是相同的,所以他们本身是无序的。 其实这个问题就是把M个苹果分成不超过N堆,总共有多少种分法。所以可先按每堆苹果数量排序,依次比较每一堆的苹果,如果所有堆都一样才是相同的分法。这也就意味着堆数肯定相同,然后排序后每一堆也相同,这样才算是相同的分法。