匯東網


C 程序設計 - 動態規劃

[編輯] [转简体]
|
作者:huidong | 分類:【編程】C 程序設計課程
[ 11 瀏覽 0 評論 2 贊 2 踩 ]

概要
筆記

正文

動態規劃的使用條件

1. 我自己的理解

  1. 這個問題可以用分治法解決

  2. 用分治法有很多地方會出現重複計算

  3. (*貌似滿足 1 則必然滿足此條,有待證明)這個問題是無後效性的

無後效性是指如果在某個階段上過程的狀態已知,則從此階段以後過程的發展變化僅與此階段的狀態有關,而與過程在此階段以前的階段所經歷過的狀態無關。

2.  老師的說法

  1. 這個問題具有遞推關係(存在 Fn = 1 + min(Fn-1 + Fn-5 + Fn-11) 這樣的遞推式)

  2. 有大量重複計算

  3. 無後效性

那麼,我們就可以從後往前算。本來要算 Fn,但是在往下遞推的過程中免不了要算 Fn-1, Fn-2, ... , F1,那麼就從 F1 開始算,把中間算出來的值都保留下來,這樣計算後面的值其實就只需要往前查找已經存在的值就可以了。 


動態規劃的最關鍵三點

  1. 你如何存儲中間計算數據(也就是你的那個存儲  Fn 的數組是如何工作的)

  2. 遞推式是什麼

  3. 初始數據(不符合通項公式的那部分)是多少



[ 2] [ 2]


 評論區  0 條評論

+ 添加評論