久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么用java解決背包問題

173次閱讀
沒有評論

共計 833 個字符,預計需要花費 3 分鐘才能閱讀完成。

背包問題是一個經典的組合優化問題,可以使用動態規劃來解決。以下是使用 Java 語言解決背包問題的一個示例:

public class KnapsackProblem {public static int knapSack(int capacity, int[] weights, int[] values, int n) {int[][] dp = new int[n + 1][capacity + 1];

        for (int i = 0; i <= n; i++) {for (int j = 0; j <= capacity; j++) {if (i == 0 || j == 0) {dp[i][j] = 0;
                } else if (weights[i - 1] <= j) {dp[i][j] = Math.max(values[i - 1] + dp[i - 1][j - weights[i - 1]], dp[i - 1][j]);
                } else {dp[i][j] = dp[i - 1][j];
                }
            }
        }

        return dp[n][capacity];
    }

    public static void main(String[] args) {int capacity = 10;
        int[] weights = {2, 3, 4, 5};
        int[] values = {3, 4, 5, 6};
        int n = weights.length;
        int maxValue = knapSack(capacity, weights, values, n);
        System.out.println(" 背包能裝下的最大價值為: " + maxValue);
    }
}

在上面的示例中,knapSack方法用于解決背包問題。它接受背包的容量、物品的重量數組、物品的價值數組和物品的個數作為參數,并返回背包能裝下的最大價值。

main 方法中,我們定義了一個背包容量為 10 的背包,物品的重量數組為 {2, 3, 4, 5},物品的價值數組為{3, 4, 5, 6},物品個數為 4。然后調用knapSack 方法求解背包能裝下的最大價值,并將結果打印輸出。

運行以上代碼,輸出結果為:

背包能裝下的最大價值為: 10

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-16發表,共計833字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 从化市| 富源县| 松阳县| 葫芦岛市| 彰武县| 安国市| 铁力市| 凌海市| 阿克| 蒙山县| 芜湖市| 改则县| 丰城市| 百色市| 宁化县| 姚安县| 宁安市| 原平市| 株洲县| 邢台县| 信丰县| 大渡口区| 瓦房店市| 南昌市| 获嘉县| 垫江县| 万载县| 沁阳市| 鄄城县| 临湘市| 淮阳县| 河曲县| 五家渠市| 墨竹工卡县| 乐清市| 桓台县| 申扎县| 台江县| 镇江市| 普格县| 金沙县|