动态规划中的递推公式

问题描述:

其中l_1 = 1,l_2 = 4,l_3 = 5是不同长度的块,我需要用公式构造一个长度为l = 8的大块。动态规划中的递推公式

有人可以解释我以下公式:

enter image description here

的公式是在乳胶,与排列L = [1 + 1]

很抱歉的格式,但我`吨上传图片。

这个问题似乎是要找出做出更大块所需的块的最小数量是多少。此外,似乎没有限制可用的单个块的数量。

假设你有n个不同长度的块。 l1, l2 .. ln。您可以用来制作一个长度为k的大块的最小块数是多少?

的递推公式背后的想法是,你可以通过添加长度l1的一个街区,你可能已经使用的块的最小数目由长度i-l1的假设大块使长度i块(因为这是你的L数组所持有的数据,对于任何索引j,它都包含制作大小为j的块所需的最小块数。假设i-l1块是使用4个块建立的。使用这4个块和另外一个大小为l1的块,您使用5个块创建了一个大小为i的块。

但是现在说一个大小为i-l2的块只能使用3个块。然后,您可以轻松地将另一个大小为l2的区块添加到此大小为i-l2的区块,并使用4个区块创建一个大小为i的区块!

这就是对所有可能的块长度进行迭代并选择最小值(在乳胶图像的第三行中提到)背后的想法。

希望有所帮助。