鋼條切割問題

2021-09-16 13:26:15 字數 814 閱讀 2901

對應於演算法導論上的鋼條切割問題。

package dynamic_programming;

/* * 動態優化問題之鋼條切割問題

* 長度i: 1 2 3 4 5 6 7 8 9 10

* **p: 1 5 8 9 10 17 17 20 24 30

* * 問題,對於長度為i的鋼條,怎麼切割,使之價值最大。

* */

public class steel_bar_cutting

if(r[n]!=0)

int result=-integer.max_value;

for(int i=1;i<=n;i++)

}r[n]=result;

return r[n]; }

/*** 自底向上

* *

* @param args

*/public int cut_bottom(int p,int r,int n)

}r[i]=result;

} return r[n];

} public static void main(string args) ;

int n=p.length;

int r=new int[n];

steel_bar_cutting instance=new steel_bar_cutting();

for(int i=0;isystem.out.println("------------------");

for(int i=0;i}

}

鋼條切割問題

動態規劃的一般步驟 1.刻畫乙個最優解的結構特徵 2.遞迴定義最優解的值 3.計算最優解的值,通常採用自底向上的方法 4.利用計算出的資訊構造乙個最優解 利用動態規劃方法求解類似鋼條切割方案的這一類遞迴問題,可避免反覆求解相同的子結構,下面是樸素遞迴演算法和用動態規劃設計的遞迴演算法的相應實現。鋼條...

鋼條切割問題

class program 索引代表 鋼條的長度,值代表 console.writeline updown 0 p console.writeline updown 1 p console.writeline updown 2 p console.writeline updown 3 p conso...

鋼條切割問題

一 問題描述 給定乙個長度為n英吋的鋼條和一張 表 英吋 美元 求乙個切割方案使得獲取的收益r最大。例如,對於如下的 表 給定長度n為4英吋,則獲取的最大利益為10美元,對應的切割方案為 2 2。一種遞迴求解法 在不考慮切割順序的前提下 1 n 1 和 n 1 1這兩種切割方式實際上收益是一樣的,可...