斐波那契,DP,递归,递推,数学归纳
2014-05-21 21:50
344 查看
这些概念非常像。都有一个初始状态 + 往后递推的意思。
DP的核心思想就是当前状态f(n) 和之前状态f(1...n-1)的关系的问题 , 斐波那契函数就是一个具体的状态转换f(n)=f(n-1)+f(n-1)。推而广之就是递归。递归的转化为递推就是DP,DP和递推是等价的。
可以有多个状态,比如最大子数组问题,就有两个状态,maxLen(i), maxLenEndWithPrev(i),问题的解是对应其中一个状态maxLen(i)。如果用递推/DP,就是随着i循环,计算这些状态。i递推到n,其中一个状态就是解。 如果用递归,每个状态定义一个递归函数。
DP的一般情况,当前装填f(i) 是之前所有状态的函数 f(i) = g(f(1), f(2),...,f(i-1),之前的所有状态要保存,所以需要用一个数组来保存状态。有些情况f(i) 只跟f(i-1)有关,这时候只需要一个变量保存状态。
DP/递推的初始状态 = 递归的非递归定义部分(anchor, ground case,递归出口)
DP的状态转移方程 = 递推的递推关系= 递归的递归定义部分
DP的状态和状态转移方程,就是之前强调的以变量和变量的变化为中心的思想是一样的
DP的核心思想就是当前状态f(n) 和之前状态f(1...n-1)的关系的问题 , 斐波那契函数就是一个具体的状态转换f(n)=f(n-1)+f(n-1)。推而广之就是递归。递归的转化为递推就是DP,DP和递推是等价的。
可以有多个状态,比如最大子数组问题,就有两个状态,maxLen(i), maxLenEndWithPrev(i),问题的解是对应其中一个状态maxLen(i)。如果用递推/DP,就是随着i循环,计算这些状态。i递推到n,其中一个状态就是解。 如果用递归,每个状态定义一个递归函数。
DP的一般情况,当前装填f(i) 是之前所有状态的函数 f(i) = g(f(1), f(2),...,f(i-1),之前的所有状态要保存,所以需要用一个数组来保存状态。有些情况f(i) 只跟f(i-1)有关,这时候只需要一个变量保存状态。
DP/递推的初始状态 = 递归的非递归定义部分(anchor, ground case,递归出口)
DP的状态转移方程 = 递推的递推关系= 递归的递归定义部分
DP的状态和状态转移方程,就是之前强调的以变量和变量的变化为中心的思想是一样的
相关文章推荐
- ACM-递归递推练习K- 们--加强斐波那契
- Finonacci sequence,斐波那契,经典的兔子繁殖,更新为兔子会死,通项推导,循环,递归,dp实现
- 算法导论之数学归纳法和递归
- 2013-11-04 实验之取球游戏(递推思想,数学归纳思想,思维逻辑思想)
- 递推递归练习 J - 数学黑洞
- 递推递归练习 J 数学黑洞
- 递推递归练习K - 们--加强斐波那契
- [BZOJbegin][NOIP十连测第七场]约瑟夫游戏(递推|数学相关|递归)
- ACM递推递归练习J 数学黑洞
- 递推递归练习J - 数学黑洞
- 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)
- 递归与递推——A(母牛的故事),E(养兔子),K - 们--加强斐波那契
- POJ 1163 The Triangle【DP】递归和递推
- 递推递归练习K - M--加强斐波那契
- ACM递推递归练习K 们--加强斐波那契
- 递推、递归与迭代的本质,以及,辗转相除与斐波那契的惊人相似性
- 递归递推练习 J - 数学黑洞
- 数学归纳解决递归问题
- 斐波那契数列3种解法(朴素递归、动态规划、数学归纳)及算法分析
- 递推递归——K - 们--加强斐波那契