我工作的這個動態規劃問題,我卡在Java中動態PROG幫助(揹包)
的目標是要找到的熱量最低數量才能準確地度過寫迭代求解X美分。如果我們不能花費X美分,那麼就沒有解決方案。我們給出N個物品的數量,每個物品的價值V和卡路里C歸因於它。
public static void iterative(int[] v, int[] c, String[] items, int X, int num_items)
{
System.out.println("Iterative");
int N = num_items;
int[] min = new int[X];
int i, j;
for(i=1 i < X; i++) {
min[i] = Integer.MAX_VALUE;
}
min[0] = 0;
for(i=1;i<=X;i++)
{
for(j=0;j<N;j++)
{
if(v[j]<=i && ((min[i-v[j]]+c[i]) < min[i])) //Wrong?
{
min[i] = min[i-v[j]] + 1;
}
}
}
}
我想我只是不真正瞭解迭代步驟的遞歸關係。
你是否清楚揹包算法。 ? – Saif
對我來說還是很新鮮的東西,只是看着http://en.wikipedia.org/wiki/Knapsack_problem和其他例子。 – Leroy