M个苹果放在N个盘子里,有多少种不同的放法
1. 问题
M个同样的苹果放N个同样的盘子,允许有盘子空着, 问有多少种放法?
2.分析
令f(m,n)表示m个苹果放到n个盘子里有多少种放法,下面分类讨论:
- m<n时,至少有n-m个盘子空着(这些空盘子并不影响最后的结果,因为每种方法都带有着些空盘子)。只考虑m个苹果放m个盘子 f(m,n)=f(m,m)
- m>n时,按是否有空盘子 分2种情况:
a.假设至少一个盘子空着,相当于f(m,n)=f(m,n-1)
b.所有的盘子都有苹果,假设每个盘子可以先放一个,问题就变成:m-n个苹果放到n个盘子,即f(m,n)=f(m-n,n)
总的放法为二者之和, f(m,n)=f(m,n-1)+f(m-n,n)
3. 临界条件
n=1时,所有苹果都放在同一个盘子里 f(m,n)=1
m=0时,没有苹果 f(m,n)=1
3.code
用递归实现分治
public int fun(int m,int n){if(m<=1||n==1)return 1;else if ( n == 0)return 0;else if(n>m)return fun(m,n-1);return fun(m-n,n) + fun(m,n-1);}
M个苹果放在N个盘子里,有多少种不同的放法相关推荐
- m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法
package com.study; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...
- 算法题放苹果:把M个相同的苹果放到N个完全相同的盘子里,有多少种放法?
文章目录 题目描述 题解 思路1 暴力递归 思路2:缓存思想--动态规划来优化暴力递归 题目描述 链接:点我做题 题解 思路1 暴力递归 我们利用递归来解决这个问题,不妨这样思考,假设apples ...
- 【放苹果】m个苹果放到n个盘子中
m个相同的苹果,放在n个相同的盘子中,由于相同,使用排列组合的方法不好处理.这里选用递归调用的方式解决问题: (8个苹果,放在3个盘子里)= (8个苹果,放在2个盘子) +(5个苹果,放在2个盘子[每 ...
- POJ 1664 求m个苹果放入n个盘子的不同放法数目 递归 分类讨论
通过分类讨论,将规模较大的问题转换成规模较小的相同问题,学会"降维",将索引值不断降小,就可以递归求解 设f(m,n)为把m个苹果放到n个盘子中的方法数,m>=0,n> ...
- 第T题 详解放苹果(递归) =========== 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t < ...
- M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放的算法
把 M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K 表示)注意:5,1,1 和1,5,1 是同一种分法 eg:输入7,3 输出 8 思路: 本题我们采用递 ...
- (多线程同步练习)桌子上有一只盘子,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子里的橘子,一个女儿专等吃盘子里的苹果。写出能使爸爸、妈妈、儿子、女儿正确同步工作的
这是操作系统的一道课堂练习题 题目完整描述: 桌子上有一只盘子,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子里的橘子,一个女儿专等吃盘子里的苹果.写出能使爸爸.妈 ...
- 苹果电脑怎么删除移动硬盘里的文件,苹果电脑无法删除移动硬盘文件
苹果电脑怎么删除移动硬盘里的文件?也不能进行复制.编辑.移动等操作,只能够打开文件进行查阅,是因为移动硬盘是NTFS格式的,这种格式在Mac电脑上只允许被查阅. Mac为何不能正常读写NTFS移动硬盘 ...
- 操作系统同步问题:有一个没有限量的大盘子,爸爸只往里面放苹果,妈妈只往里面放桔子,儿子只拿苹果吃,女儿只拿桔子吃,请写出能描述4个人行为的同步方案
有一个没有限量的大盘子,爸爸只往里面放苹果,妈妈只往里面放桔子,儿子只拿苹果吃,女儿只拿桔子吃,请写出能描述4个人行为的同步方案. Program father: begin: repeat:prod ...
- 苹果Mac修改图标“偷梁换柱”的一种简单方法
初接触苹果Mac OS系统又爱好整洁漂亮的新手们,都有这样的感觉:放在硬盘或文稿里的文件夹,千篇一律的蓝框框,确实不爽.想改吧,用惯了Windows系统一时又不知道从何下手,现在我告诉大家一个偷梁换柱 ...
最新文章
- 数据库安装时挂起问题
- 如何定义研发KPI:以团队速度为标准
- 对异步脉冲信号的处理——不归0翻转电路
- unrecognized selector sent to instanceAuto property synthesis will not synthesize property
- LeetCode动态规划 使用最小花费爬楼梯
- HBase架构设计及原理分析
- 数据结构与算法——栈、队列、堆汇总整理
- sql 日期间隔排查双休_免费教程《图解SQL面试题》
- ArcGIS学习总结(16)——反距离权重法插值及批处理(IDW)
- Unity编辑器:自定义编辑器样式——GUIStyle
- AI新生 人类最后一个大问题 破解人机共存密码 Human Compatible Stuart Russell
- 小米笔记本Pro 黑苹果10.15.2记录 不需要焊接,完美支持airdrop、接力、随航
- MTK平台Camera图片的Exif信息
- 电脑ping,怎么ping网速,详细教您ping网络的方法
- java illegal key size,Java 解密错误InvalidKeyException: Illegal key size解决方法
- Spring Cloud Alibaba阿里面试题
- 测试用的美国信用卡账号
- epub解压的多个html制作单个html
- 南怀瑾老师:人最大的毛病就是不敢承认“心即是佛、心即是道
- 俺常去(用)滴地方~
热门文章
- 如何利用Xshell远程登陆主机后使用代理服务器上网
- 一个空间多个php网站,一个空间多个域名多个网站的办法汇总
- 【行车路径规划】百度地图API,行车路径规划 起始点+途经点
- 【蓝桥杯】:奇怪的分式
- 计算机组成原理无符号数除法,计算机组成原理课设 不恢复余数的无符号阵列除法器.doc...
- linux卸载小企鹅输入法,Linux(FC)小企鹅输入法的安装
- 淘客菜鸟百度贴吧怎么发帖子操作淘宝客
- win10怎么一键释放运行内存
- 推荐几款优秀的开源博客系统
- unll是什么意思_javascript中null是什么意思?