algorithm - 了解动态规划中的基本情况

标签 algorithm dynamic-programming

考虑这个问题 count of different ways express-n sum-1-3-4

我的理解是 f(n) 是将 n 表示为 1、3 和 4 之和的多种方式

f(n-1) 是将 n-1 表示为 1、3 和 4 之和的方法数

f(1) 是将 1 表示为 1、3 和 4 之和的方式数

f(0) 是将 0 表示为 1、3 和 4 之和的方式数

不应该是 0,因为没有办法将 0 表示/表达为 1,3,4 的总和

刚开始学习动态规划,但我不明白为什么这应该是 1 而不是 0

最佳答案

好吧,假设您想将某个总和 S 表示为 1、3 和 4 的总和

您可以用数学公式将其写为 S = 1*x + 3*y + 4*z其中 x,y,z 表示总和中的 1、3 和 4 的数量。

所以现在f(S)只是方程解的数量(记住 x、y、z 是非负整数)

S=0我们可以很容易地看出方程只有一个解 - x=0, y=0, z=0

关于algorithm - 了解动态规划中的基本情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58360973/

相关文章:

java - 是先学数据结构和算法还是先学Java?

java - 寻找最少的移动次数

algorithm - 两个背包的 0-1 背包问题的反例

python - 从列表中按距离排序的列表中获取对的最快方法

c - 剥离非数字字符串元素

c# - 什么是操作大量 DateTime 记录的好算法?

arrays - 算法 - 动态规划

java - 动态规划 : perfect sum with negative numbers

python - 寻找最小化约束的最佳解决方案?

C++ 极小极大函数