第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java背包問題

java背包問題

?有一個背包的負(fù)重最多可達(dá)8公斤,而希望在背包中裝入負(fù)重范圍內(nèi)可得之總價物品,現(xiàn)在有一些物品,單價和重量分別是:黑豆4kg/4500,紅豆5kg/5700,黃豆2kg/2250,紫薯1kg/1100,青豆6kg/6700.求裝滿一背包的物品,背包的價值最大的方案。代碼如下:class Fruit { private String name; private int size; private int price; public Fruit(String name, int size, int price) { this.name = name; this.size = size; this.price = price; } public String getName() { return name; } public int getPrice() { return price; } public int getSize() { return size; }}public class KnapsackProblem { public static void main(String[] args) { final int MAX = 8; final int MIN = 1; int[] item = new int[MAX + 1]; int[] value = new int[MAX + 1]; Fruit fruits[] = { new Fruit("李子", 4, 4500), new Fruit("蘋果", 5, 5700), new Fruit("橘子", 2, 2250), new Fruit("草莓", 1, 1100), new Fruit("甜瓜", 6, 6700) }; //No.1 //開始寫代碼,補充完整代碼,用動態(tài)規(guī)劃的方法實現(xiàn)背包問題 for (int i = 0 ) { for (int s = fruits[i].getSize() ) { int p = s - fruits[i].getSize(); int newvalue = value[p] + fruits[i].getPrice(); } } } //end_code System.out.println("物品\t價格"); for (int i = MAX; i >= MIN; i = i - fruits[item[i]].getSize()) { System.out.println(fruits[item[i]].getName() + "\t" + fruits[item[i]].getPrice()); } System.out.println("合計\t" + value[MAX]); }}
查看完整描述

1 回答

已采納
?
路人丶丨

TA貢獻(xiàn)115條經(jīng)驗 獲得超45個贊

設(shè)置每種東西的個數(shù)為int值,對第一個物品進(jìn)行循環(huán),最大值為總價/單價取整。 然后在此循環(huán)下,對其他的物品進(jìn)行同樣邏輯的循環(huán),保證條件是各個物品的單價*個數(shù)相加,不能大于總數(shù)。 可以得出不同的結(jié)果,獲取最大就好。

查看完整回答
反對 回復(fù) 2016-10-26
  • 1 回答
  • 1 關(guān)注
  • 1382 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號