回 帖 发 新 帖 刷新版面

主题:估计也就高手能解决

题目:现有6种杯子,箱子可能放一种,也可能多种。假设1号杯子重量a=2.1克,2号杯子30.5克,3号杯子80.6克,4号杯子50.3克,5号杯子20.4克,6号杯子27.5克。(1-6号杯子最多个数不超过100。)如果我现在我称得总重量X(假如600克),有多少种可能性?算法最优。最好所用时间最短。

回复列表 (共9个回复)

沙发

用for循环不是最优吧!

板凳

贪心算法?

3 楼

遗传算法

4 楼

递推
count[n][i]表示仅使用前n种杯子,组成总重量为i的不同组合数量
count[n+1][i]=Sigma{j in [0, 100]}( count[n][i-j*weight[n+1]] )
初始count[0][0]=1
复杂度O(n*m*p),n为杯子种类数,m为一种杯子最多能使用的数量,p为目标总重量
楼主的数据得到819

5 楼

转换成数学问题,列微分方程,用编程来解,这样最优吧

6 楼

微分方程?哇哈哈

7 楼


能给出程序吗?
觉得你的思路挺好但是想不出具体怎么实现
请指点一下

8 楼

http://blog.pfan.cn/wcai/50339.html
看我这篇文章 类似的题目

9 楼

学习一下学习一下















[url=http://www.sc115.com/vector]矢量素材[/url],[url=http://www.sc115.com/PPT]PPT模板[/url],[url=http://www.sc115.com]素材中国[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册