/**
* 定義乙個物體類
*/class body
/**
* 一般揹包問題的**實現
*@param w:每個物體重量的陣列
*@param p:每個物體收益的陣列
*@param m:揹包載重
*@return 結果集(放入哪幾個物體、每個物體放入多少部分)
*/listcommonpackage( int w, int p, int m )
// 對價效比排序(從高到低排序)
collections.sort(bodys, new comaprator()
});// 將物體按照價效比從高到低依次加入揹包
int rest = m;// 剩餘重量
int i=0;
listresults = new arraylist<>();// 存放結果集
for(; iif ( restbreak;
body curbody = bodys.get(i);
results.add(curbody);
rest -= curbody.w;
}// 計算最後乙個物體能放入的部分
body lastbody = bodys.get(i);
results.add(new body(lastbody.id,rest,(lastbody.p*rest/lastbody.w));
}
一般揹包問題的貪心演算法
2.寫出一般揹包問題的貪心演算法。輸入 先輸入物品的個數n,再輸入揹包的容量c,然後依次輸入物品的重量wi,最後依次輸入物品的價值vi。注意 所有值都不能隨機生成!輸出 物品的選擇向量xi,0 public static void main string args for int i 0 i n i...
貪心演算法 二 一般揹包問題
有乙個揹包,最多放m kg的物體 物體大小不限 有n個物體,每個物體的重量為wi,每個物體完全放入揹包後可獲得收益pi。問 如何放置能獲得最大的收益?注 揹包問題分為兩種,若每個物體不可分割,則稱為0 1揹包問題,這種問題無法用貪心法求的最優解,只能求的近似解。而若每個物體可以切分,則稱為一般揹包問...
揹包問題(貪心演算法)
揹包問題 程式8 4 2.cpp 定義控制台應用程式的入口點。揹包問題 貪心演算法 include stdafx.h define maxnumber 20 typedef struct node object float find object wp,int n,float m i 0 while...