Fibonacci系列是动态编程问题吗?

时间:2014-07-25 17:12:01

标签: dynamic-programming fibonacci

我在谈论计算第n个斐波纳契数的问题。 这里的一些用户说它实际上是一个DP问题,(请参阅这个问题的第一个答案和相同答案的评论What is dynamic programming?)但是其他人说这不是因为它没有优化任何东西而且由于其他原因,它是否也是如此?

1 个答案:

答案 0 :(得分:0)

从动态编程的Wikipedia页开始,

 var m := map(0 → 0, 1 → 1)
 function fib(n)
   if key n is not in map m 
       m[n] := fib(n − 1) + fib(n − 2)
   return m[n]

This technique of saving values that have already been calculated is called memoization; this is 
the top-down approach, since we first break the problem into subproblems and then calculate and 
store values.

因此,它是用于获取序列中第N个数字的技术之一。

编辑 - 对于添加的问题,memoization是DP的一种形式。