社区
Java SE
帖子详情
一道题目,求教
ccc_moriya
2008-12-17 04:51:00
把M个苹果放到N个盒子有多少种放法。。盒子可空,算组合,3 3 7 和7 3 3和3 7 3都是一种。
不好意思,新人没分。。
...全文
204
17
打赏
收藏
一道题目,求教
把M个苹果放到N个盒子有多少种放法。。盒子可空,算组合,3 3 7 和7 3 3和3 7 3都是一种。 不好意思,新人没分。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chichi_zhejiang
2009-03-31
打赏
举报
回复
递归是对的,可惜这算法速度有点慢.不知道有没有数学算法.
jhr924
2008-12-20
打赏
举报
回复
[Quote=引用 9 楼 zk20052009 的回复:]
......
不知道以后不上学了
这些题会不会也不会做了
用*代表苹果吧
比如说5个苹果放3个盒子里
*****
在其中我加2个板就能把苹果分成三份
*****||
让这7个东西随便排列7!
其中苹果位置互换无所谓,板位置互换无所谓
所以为7!/5!/2!
你的题同理就是(M+N-1)!/M!/(N-1)!
也可以想简单一点
一共有M+N-1个东西
从中挑出N-1个板子
[/Quote]
应该对着呢
ccc_moriya
2008-12-20
打赏
举报
回复
[Quote=引用 10 楼 tangmin0719 的回复:]
这里有个相似的问题。
递归法求解排列组合的一个题目(pku 苹果盒子题目)2007-03-04 19:37/*******pku放置苹果问题的小程序******/
/*******作者:xiaocui **************/
/*******时间: 2007.3.4**************/
/*******版本: v1.0 *****************/
/****问题描述:
****
放苹果
Time Limit:1000MS Memory Limit:10000K
Total Submit:4861 Accepted:3034
Description
把M个同样的苹果放在N个同样…
[/Quote]
很详细呢。。
ccc_moriya
2008-12-20
打赏
举报
回复
[Quote=引用 11 楼 hero706309 的回复:]
很明显
m
n 种方法。
拿一个苹果出来放到N个盒子,有N种方法;
再拿一个苹果出来放到N个盒子,有N*N种方法;
..........
N*N*N*.....
晕死,这种题目还用讨论吗?
[/Quote]
这肯定错。。。
ccc_moriya
2008-12-20
打赏
举报
回复
[Quote=引用 7 楼 tangmin0719 的回复:]
都给出一百点了,还没分。这么富呀。我可用分才10分呢。得抓紧赚点。。
[/Quote]
我开始以为总技术分就是可给的分,,搞错了,,发现自己的可用分有125,,开始给零分没人答,后来加分,,只能加100分。。。。郁闷
zk20052009
2008-12-19
打赏
举报
回复
[Quote=引用 11 楼 hero706309 的回复:]
很明显
m
n 种方法。
拿一个苹果出来放到N个盒子,有N种方法;
再拿一个苹果出来放到N个盒子,有N*N种方法;
..........
N*N*N*.....
晕死,这种题目还用讨论吗?
[/Quote]
注意这道题的意思是
苹果是相同的不可分辨的
盒子是不同的
herochl
2008-12-19
打赏
举报
回复
很明显
m
n 种方法。
拿一个苹果出来放到N个盒子,有N种方法;
再拿一个苹果出来放到N个盒子,有N*N种方法;
..........
N*N*N*.....
晕死,这种题目还用讨论吗?
小墨鱼
2008-12-19
打赏
举报
回复
这里有个相似的问题。
递归法求解排列组合的一个题目(pku 苹果盒子题目)2007-03-04 19:37/*******pku放置苹果问题的小程序******/
/*******作者:xiaocui **************/
/*******时间: 2007.3.4**************/
/*******版本: v1.0 *****************/
/****问题描述:
****
放苹果
Time Limit:1000MS Memory Limit:10000K
Total Submit:4861 Accepted:3034
Description
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
Input
第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
Output
对输入的每组数据M和N,用一行输出相应的K。
Sample Input
1
7 3
Sample Output
8
解决思路,可以利用递归的方法,也可以利用组合数学里面的栅格法进行解决。本程序利用
递归方法来解决此问题。把m个苹果放到n个盒子里,结果不相交的分为2种情况:(1)没有盒子
空;(2)有盒子空。
盒子的空是一步一步确定的,空盒的个数也只能到最后完毕才能确定。
所以, 设递归函数为f,则有递归表达式:
f(m,n) = f(m-n, n) +f(m,n-1);
f(m-n,n)表示首先给n个盒子各方一个苹果,然后再把剩余的m-n和苹果房间n个盒子里;
f(m,n-1)表示一个盒子为空,把m个苹果放到n-1个盒子里去。
如果,苹果数等于0了,或者盒子数等于1了,这2种情况的方法都是1种,这就是递归的出口(结束条件).
f(m,n)=f(m,m)(m<n时,m个苹果最多需要m个盒子,一个盒子放1个,多余的盒子根本用不上)。
**********************************************************************************/
#include <iostream>
using namespace std;
/*****放置苹果的递归函数*****
*****递推式为:
f(m,n) = f(m-n,n) + f(m,n-1); m>n
f(m,n) = f(m,m); m<n
f(0,n) = 1; m=0
f(m,1) = 1; n=1
********/
int f( int m, int n )
{
//递归出口,没有苹果或者盒子剩下1个
if ( m==0 || n == 1 )
{
return 1;
}
//苹果树多于盒子数
if ( m >= n )
{
return f(m-n, n)+f(m, n-1);
}
else //苹果树少于盒子数,只需要相同的盒子数就足够了
{
return f(m, m);
}
}
int main()
{
cout <<"请输入苹果数目: ";
int apple_count;
cin >> apple_count;
cout <<"请输入盒子数目: ";
int box_count;
cin >> box_count;
cout <<"把这些苹果房间这些盒子,不重复的放置方法有: "<<f(apple_count, box_count)<<endl;
return 0;
zk20052009
2008-12-19
打赏
举报
回复
......
不知道以后不上学了
这些题会不会也不会做了
用*代表苹果吧
比如说5个苹果放3个盒子里
*****
在其中我加2个板就能把苹果分成三份
*****||
让这7个东西随便排列7!
其中苹果位置互换无所谓,板位置互换无所谓
所以为7!/5!/2!
你的题同理就是(M+N-1)!/M!/(N-1)!
也可以想简单一点
一共有M+N-1个东西
从中挑出N-1个板子
小墨鱼
2008-12-19
打赏
举报
回复
排列组合问题。。具体怎么算。。忘了。。
up
小墨鱼
2008-12-19
打赏
举报
回复
都给出一百点了,还没分。这么富呀。我可用分才10分呢。得抓紧赚点。。
herochl
2008-12-19
打赏
举报
回复
[Quote=引用 5 楼 jhr924 的回复:]
引用 3 楼 hero706309 的回复:
m
n 种方法。
拿一个苹果出来随机放个盒子,有N种方法;
再拿一个苹果出来随机放个盒子,有N种方法;
..........
N*N*N*.....
应该不对吧
[/Quote]
学过数学的都知道!高手有的来证实下
jhr924
2008-12-19
打赏
举报
回复
[Quote=引用 3 楼 hero706309 的回复:]
m
n 种方法。
拿一个苹果出来随机放个盒子,有N种方法;
再拿一个苹果出来随机放个盒子,有N种方法;
..........
N*N*N*.....
[/Quote]
应该不对吧
herochl
2008-12-19
打赏
举报
回复
纯数学题目 没什么好说的
herochl
2008-12-19
打赏
举报
回复
m
n 种方法。
拿一个苹果出来随机放个盒子,有N种方法;
再拿一个苹果出来随机放个盒子,有N种方法;
..........
N*N*N*.....
jhr924
2008-12-19
打赏
举报
回复
以前高三的题了, 但是现在忘了, 心寒呀
这题以前可是我的强项呀
ccc_moriya
2008-12-19
打赏
举报
回复
没人会吗?? 我没总技术分,,可以给分的吗??
数据处理救星降世Power Query
0/ Excel数据处理新利器来了,准备好了吗? 1/ 比网红函数VLOOKUP还全面的功能。——查(查询) 2/ 取其精华,去其糟粕。...——聚(聚合) 9/ 我自己的难题自己造函数,不
求教
别人。——技法(自定义函数)
求解
一道
c语言编程题,大神
求教
!
一道
C语言编程题
求教
一道
c语言编程,大神进!...
导航:网站首页 >大神
求教
!
一道
C语言编程题
求教
一道
c语言编程,大神进!大神
求教
!
一道
C语言编程题
求教
一道
c语言编程,大神进!相关问题:匿名网友:直接上代码#include int main(){double L;double ticheng=0;double rate = 0;int p;printf("请输入利润\n");scanf("%f",&L);if(L <= 1...
th themlefy 计算_CFA
一道
计算题,
求教
题目
是这样子的:abankquotescertificateofdeposit(CD)yieldsbothasannualpercentagerates(APR)withoutcompoundingandasannualpercentageyields(APY)thatincludetheeffectsofmonthlyc...
题目
是这样子的:a bank quotes certificate o...
Python
求教
一道
题,看看大家有多少种办法解决他
Python请教
一道
题目
哈 name={"name":"demo"} url={"url":"wwww.baidu.com"} demo={ 'content': 'C0100007', 'endDate': None, 'rank': 1, 'startDate': None, 'title': 'C0100007666666666', 'type': 'visitHotel' } demo.update("fileList",name) demo.update("fileList",url)
江哥的DP题(F)
【
题目
描述】 有一个N*M的棋盘,每个格子都有一个权值,规定路径必须满足下列条件: (1)从左上角出发,于右下角结束; (2)不经过重复的格子; (3)每一步都不会向左走; 现询问路径经过的格子的权值和最小能够为多少。 【输入描述】 第一行输入两个整数N、M; 接下来N行,每行输入M个整数,表示每个格子的权值。 【输出描述】 输出一个整数,表示答案。 【输入样例】 4 5 ...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章