[英]Recursion formula in dynamic programming
其中l_1 = 1,l_2 = 4,l_3 = 5是具有不同長度的塊,我需要使用公式制作一個長度為l = 8的大塊。
有人可以向我解釋以下公式:
公式在LaTeX中,數組L = [l + 1]
抱歉,格式化無法上傳圖片。
問題似乎在於找到制作一個更大的塊所需的最小塊數是多少。 同樣,似乎對可用的單個塊的數量沒有限制。
假設您有n個不同長度的塊。 l1, l2 .. ln
可以用來制作一個長度為k
的大塊的最小塊數是多少?
遞歸公式背后的想法是,您可以通過將一個長度為l1
塊添加到一個假設的長度為i-l1
的大塊中來制作一個長度為i
的塊,您可能已經使用最少的塊數制作了該塊(因為這就是您的L
數組成立,對於任何索引j
,它持有制作一個大小為j
的區塊所需的最少區塊數。 假設i-l1
塊是使用4個塊構建的。 使用這4個塊和另外1個大小為l1
的塊,您使用5個塊創建了一個大小為i
塊。
但是現在,假設僅使用3個塊制作了一個大小為i-l2
塊。 然后,您可以輕松地將另一個大小為l2
塊添加到此大小為i-l2
的塊,並僅使用4個塊來制作大小為i
塊!
這就是在所有可能的塊長度上進行迭代並選擇所有最小塊長度的想法(在乳膠圖像的第三行中提到)。
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.