/*
* 鋼條切割方案自底向上
*/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長度處,我們總是可以選擇切割或者...