在0-1背包问题中,给出了一组项目,每个项目都有一个权重和一个值。我们需要确定要包含在集合中的每个项目的数量,以使总重量小于或等于给定的限制,并且总值尽可能大。
Value = [10, 20, 30, 40, 60, 70] Weight=[1, 2, 3, 6, 7, 4] int w=7
输出结果
knapsack value is: 100
Begin Input: set of items each with a weight and a value Set knapsack capacity Number of items=sizeof(values) / sizeof(values[0]) Knapsack(Values (stored in array v), Weights (stored in array w), Number of distinct items (n), Knapsack capacity W) If (w < 0) Return If no items left or capacity becomes 0 Return 0 Include current item n in knapSack (v[n]) and recurs for remaining items (n - 1) with decreased capacity (W - w[n]) Exclude current item n from knapSack and recurs for remaining items (n - 1) Return maximum value we get by including or excluding current item End
#include <iostream> #include <climits> using namespace std; int knapSack(int v[], int w[], int n, int W) { if (W < 0) return INT_MIN; if (n < 0 || W == 0) return 0; int in = v[n] + knapSack(v, w, n - 1, W - w[n]); int ex = knapSack(v, w, n - 1, W); return max (in, ex); } int main() { int v[] = { 10, 20, 30, 40, 60, 70 }; int w[] = { 1, 2, 3, 6, 7, 4 }; int W = 7; int n = sizeof(v) / sizeof(v[0]); cout << "Knapsack value is " << knapSack(v, w, n - 1, W); return 0; }
输出结果
Knapsack value is 100
本文向大家介绍C中的0-1背包问题?,包括了C中的0-1背包问题?的使用技巧和注意事项,需要的朋友参考一下 背包是袋子。背包问题是根据物品的值将物品放入袋中的。目的是使袋子内的值最大化。在0-1背包中,您既可以放置物品也可以将其丢弃,没有将物品的某些部分放入背包的概念。 样本问题 重量分布 最大值为65,因此我们将项目2和3放入背包。 0-1背包问题计划 输出结果
本文向大家介绍解决分数背包问题的C ++程序,包括了解决分数背包问题的C ++程序的使用技巧和注意事项,需要的朋友参考一下 在小背包问题中,给出了一组项目,每个项目都有一个权重和一个值。我们需要打破物品以最大化背包的总值,这可以通过贪婪的方法来完成。 算法 范例程式码 输出结果
本文向大家介绍C#使用动态规划解决0-1背包问题实例分析,包括了C#使用动态规划解决0-1背包问题实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用动态规划解决0-1背包问题的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍PHP回溯法解决0-1背包问题实例分析,包括了PHP回溯法解决0-1背包问题实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP回溯法解决0-1背包问题的方法。分享给大家供大家参考。具体分析如下: 这段代码是根据《软件设计师》教程的伪代码写的; 最麻烦的不是伪代码改成php,而是数组下标从0开始,及相应的下标判断问题; 带着调试输出一块写上 希望本文所述对大家的ph
本文向大家介绍PHP动态规划解决0-1背包问题实例分析,包括了PHP动态规划解决0-1背包问题实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了PHP动态规划解决0-1背包问题。分享给大家供大家参考。具体分析如下: 背包问题描述:一个承受最大重量为W的背包,现在有n个物品,每个物品重量为t, 每个物品的价值为v。 要使得这个背包重量最大(但不能超过W),同时又需要背包的价值最大。 思
我正在为即将到来的测试复习,想知道是否有人能重述问题的b部分。这是从分发的复习表中得到的文本,但我不确定b部分到底在问什么。我更直截了当地猜测“生成一个不到0/1背包问题最优值1%的解”是什么意思。 b)[10pts]举了一个有两个对象的例子,说明对分数背包问题使用的相同的贪婪方法(略加修改,如果贪婪方法选择的最后一个对象不适合,则忽略它)得到的解不到0/1背包问题最优解的1%。