志当存高远,功到自然成!

少年强则中国强,少年进步则中国进步!

BlogJava 首页 新随笔 联系 聚合 管理
  53 Posts :: 2 Stories :: 2 Comments :: 0 Trackbacks
 java 递归算法 背包问题!!
背包问题.设有一个背包可以放入物品的重量为s,现在n件物品,重量分别为w[0],w[1]......w[n-1].问题是能否从这n件物品中选择若干件放入此背包中使得放入的重量之和正好等于s. 如果存在一种符合上述要求的选择,则称此背包问题有解;否则称此背包问题无解. 试用分而治之的算法设计求解背包问题的函数. 
  提示:此背包问题的递推定义如下(其中true表示有解,false表示无解):
knap(s,n)={true s=0 此时问题有解
knap(s,n)={ flase s<0 总重量不能为负解
knap(s,n)={flase s>0且n<1 物品件数不能为负数
knap(s,n)={knap(s,n-1) s>0且n>=1 所选物品不包括w[n-1]时
knap(s,n)={knap(s-w[n-1],n-1) s>0且n>=1 所选物品包括w[n-1]时

只有注册用户登录后才能发表评论。


网站导航: