algorithm - 最少完美正方形的最佳子结构

标签 algorithm dynamic-programming least-squares

问题:我知道递归是如何工作的,但我似乎无法理解这个问题的“最优子结构”,这需要使用动态规划。

问题:找出总和为给定数的最少完全平方数。

假设我们想要找到从 U 到 V 的最短路径。如果中间有一个节点 X,那么从 U 到 V 的最短路径将是从 U 到 X 的最短路径加上从 X 到 V 的最短路径。

我很难理解最小二乘问题如何遵循最优子结构属性。

最佳答案

据我了解,完全平方和的递推关系与最短路径的递推关系在以下方面表现相似。让

f(n) := minimum number of perfect squares which sum up to exactly n

那么一个合适的递推可以表示为

f(n) = min{ f(n-i) + f(i) : 0 < i < n }

这意味着必须考虑将原始参数划分为两个被加数的所有部分。直觉上,最短路径问题的“ split 点”是一个节点,而在完全平方问题中,它是决定如何划分为被加数(然后进一步检查)。

关于algorithm - 最少完美正方形的最佳子结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35425342/

相关文章:

c++ - 下面的算法如何实现?

node.js - 排序时流式传输大数据

audio - 将 MFCC 特征向量与 DTW 进行比较

c - lapack dgels_ 段错误 11

python - 卡方 numpy.polyfit (numpy)

python - Scipy最小二乘: "func() missing n required positional argument: ' n_ 1', ' n_ 2'..."

algorithm - 当速度是主要关注点时,表示跳棋盘的最佳数据结构是什么?

algorithm - 一次删除 B-Tree

python-解决圆 table session (ZCO,2012)

javascript - 密码检查无法读取 null 的属性 'parentNode'