实验报告:动态规划---0-1背包问题)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXX大学计算机学院实验报告计算机学院2017级软件工程专业 5 班指导教师
学号姓名2019年10 月21 日成绩
实验内容、上机调试程序、程序运行结果
System.out.println("选中的物品是第");
for(int i=1;i<=n;i++){
for(int j=1;j<=maxweight;j++){
//当前最大价值等于放前一件的最大价值
maxvalue[i][j] = maxvalue[i-1][j];
//如果当前物品的重量小于总重量,可以放进去或者拿出别的东西再放进去
if(weight[i-1] <= j){
//比较(不放这个物品的价值)和(这个物品的价值放进去加上当前能放的总重量减去当前物品重量时取i-1个物品是的对应重量时候的最高价值)
if(maxvalue[i-1][j-weight[i-1]] + value[i - 1] > maxvalue[i-1][j]){
maxvalue[i][j] = maxvalue[i-1][j-weight[i-1]] + value[i - 1];
} }
} }
return maxvalue[n][maxweight]; }
public static void main(String[] args) {
int weight[] = {2,3,4,5};
int value[] = {3,4,5,7};
int maxweight = 8;
System.out.println(knapsack(weight,value,maxweight));
} }
完成效果: