初識動態規劃

2021-10-04 03:18:14 字數 2555 閱讀 1814

let maxw =

0//最大可放重量

let weight =[2

,2,4

,6,3

]//物品重量

let n = weight.length

let w =

11//揹包最大可承受重量

let men =

for(

let i=

0;i<=n;i++

) men.

push([

])f(

0,0)

//11

function

f(i, cw)

f(i+

1, cw)

//選擇不裝第i個物品

if(cw + weight[i]

<= w)

return maxw

}

//items - 物品重量陣列

//w - 揹包限重f(

[2,2

,4,4

,8,5

],11)

//11f(

[2,2

,4,4

,8,5

],1)

//0f([

2,8,

5],12

)//10

function

f(items, w)

}for

(let i=w;i>=

0;i--

)}

let maxv =

0//最大可放價值

let weight =[2

,2,4

,6,3

]//物品重量

let value=[3

,4,8

,9,6

]//物品價值

let n = weight.length

let w =

11//揹包最大可承受重量

let men =

for(

let i=

0;i<=n;i++

) men.

push([

])f(

0,0,

0)//21

function

f(i, cw, cv)

men[i]

[cw]

= cv

if(cw == w || i == n)

f(i+

1, cw, cv)

//選擇不裝第i個物品

if(cw + weight[i]

<= w)

return maxv

}

//items - 物品重量陣列

//w - 揹包限重f(

[2,2

,4,6

,3],

[3,4

,8,9

,6],

11)//21

function

f(items,values, w)}}

let maxvalue =-1

for(

let i=w;i>=

0;i--

)return maxvalue

}

//items - 商品**

//w - 滿減條件f(

[100,20

,20,30

,30,12

,19,10

,14,16

],200)

//"16 14 10 30 30 100"f(

[2,2

,4,6

,3],

9)//"3 6"f(

[12,22

],100)

//""

function

f(items, w)

for(

let j=

0;j<=

3*w-items[i]

;j++)}

let i //最接近w的值

for(i=w;i<=

3*w;i++)if

(i ==

3*w+1)

return

''//無解

let str =

''for

(let j=n-

1;j>=

1;j--)}

if(i !=

0) str += items[0]

console.

log(str)

}

functionf(

)else

res[i]

[j]= ********[i]

[j]+ min

}}let arr = res[res.length-1]

//所有的路線的集合

let min //集合中的最小值

for(

let v of arr)

return min}f

()//20

動態規劃初識

適合用動態規劃的問題特徵 可以分解成相互重疊的若干子問題 滿足最優性原理 結構性質 該問題的最優解中也包含著其子問題的最優解。一般地,子問題的聯絡體現在某種遞推關係,通過這種遞推計算可以把問題的解儲存起來,後期直接使用,避免重複運算。簡單的dp例子 遞推關係 m i j m i 1 j m i j ...

初識動態規劃

有乙個矩陣map,它每個格仔有乙個權值。從左上角的格仔開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。給定乙個矩陣map及它的行數n和列數m,請返回最小路徑和。保證行列數均小於等於100.輸入輸出樣例 第一行,輸入n,m表示這個矩陣...

初識動態規劃

動態規劃 dynamic programming 是運籌學的乙個分支,是求解決策過程 decision process 最優化的數學方法。20世紀50年代初美國數學家r.e.bellman等人在研究多階段決策過程 multistep decision process 的優化問題時,提出了著名的最優化...