递归函数到迭代
Recursive function to iterative
给出以下函数:
T(n, 0) = n, n >= 0,
T(0, k) = k, k >= 0,
T(n, k) = T(n - 1, k - 1) + T(n, k - 1) + 1, n > 0 and k > 0
我想要实现的是将其转换为迭代版本。我已经尝试绘制递归树来注意一些依赖关系,但我仍然无法弄清楚。
你有什么建议吗?
要计算 T(n, k)
,您可以使用以下迭代方法:
- S(i)表示T(0,i)到T(n,i)的向量
- 用零初始化你的状态向量 S(0)
- 对于 i=1 到 k
- 使用 S(i-1) 计算 S(i)
- 结束
- 你的结果是 S(i) 的最后一个元素
请注意,您只需要最近的 S(i),为了提高内存效率,您可以只存储它。
给出以下函数:
T(n, 0) = n, n >= 0,
T(0, k) = k, k >= 0,
T(n, k) = T(n - 1, k - 1) + T(n, k - 1) + 1, n > 0 and k > 0
我想要实现的是将其转换为迭代版本。我已经尝试绘制递归树来注意一些依赖关系,但我仍然无法弄清楚。
你有什么建议吗?
要计算 T(n, k)
,您可以使用以下迭代方法:
- S(i)表示T(0,i)到T(n,i)的向量
- 用零初始化你的状态向量 S(0)
- 对于 i=1 到 k
- 使用 S(i-1) 计算 S(i)
- 结束
- 你的结果是 S(i) 的最后一个元素
请注意,您只需要最近的 S(i),为了提高内存效率,您可以只存储它。