動態規劃之鋼條切割問題

2021-06-30 16:43:21 字數 821 閱讀 5833

/*

* 鋼條切割方案自底向上

*/public class cutrodbottom2up ;

public static void main(string args)

private void start()

} private cutrodsolution bottomupcutrod(int n)

}crsl.r[j] = q;

} return crsl;

} //列印輸出鋼條長度為n的完整切割方案

private void printcutrodsolution(int n)

system.out.println(); }

//內部類儲存最優切割方案資訊

private static class cutrodsolution

}}

執行結果為:

長度為1的鋼條最優收益為:1 切割方案為:1 

長度為2的鋼條最優收益為:5 切割方案為:2

長度為3的鋼條最優收益為:8 切割方案為:3

長度為4的鋼條最優收益為:10 切割方案為:2 2

長度為5的鋼條最優收益為:13 切割方案為:2 3

長度為6的鋼條最優收益為:17 切割方案為:6

長度為7的鋼條最優收益為:18 切割方案為:1 6

長度為8的鋼條最優收益為:22 切割方案為:2 6

長度為9的鋼條最優收益為:25 切割方案為:3 6

長度為10的鋼條最優收益為:30 切割方案為:10

動態規劃 鋼條切割問題

已知鋼條切割的不同長度對應的不同 如下所示 長度i 1 23 45 67 89 10 pi 1589101717202430 求輸入長度,輸出最佳的收益。詳細理論知識見 演算法導論第十五章 p359 書中給出三個演算法 一 自頂向下遞迴實現 缺點 當n足夠大時,時間會 性地增長。偽 cut rod ...

動態規劃 鋼條切割問題

動態規劃與分治法相似,都是通過組合子問題的解來求解原問題。回顧下分治法的原理 它將問題劃分為互不相交的子問題 注意 互不相交 遞迴求解子問題,再將它們的解組合起來,即為原問題的解。但是,動態規劃與分治法不同,有以下幾點 1 對於子問題重疊的情況,分治法則重複求解,不高效。而動態規劃對每個子問題只求解...

動態規劃 鋼條切割問題

一家公司購買長鋼條,將其切割成短鋼條 切割本身沒有成本,長度為i的短鋼條的 為pi。那給定一段長度為n的鋼條和乙個 表pi,求鋼條的切割方案使得收益rn最大。如乙個pi如下 長度i123 4567 8910 pi15 891017 1720 2430 在距離鋼條左端i長度處,我們總是可以選擇切割或者...