递推

递推

一、定义

递推法:每一项都和他前面的若干项由一定的关联时,可以通过其前面若干项得出某项的数据的方法。关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。 递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来,可以将递推算法看成是一种特殊的迭代算法。

二、递推典型关系

1、Fibonacci数列

问题:有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子?
递推式:

F(x) = F(x - 1) + F(x - 2)     

边界条件:

F(0) = 0,F(1) = 1

2、Hanoi塔问题

问题:Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成。开始时,这n个圆盘由大到小依次套在a柱上。

递推式:

h(n) = 2 * h(n - 1) + 1

边界条件:

h(1) = 1

3、平面分割问题

问题:设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。

递推式:

a(n) = a(n – 1) + 2 * (n - 1)		

边界条件:

a(0) = 1

4、Catalan数

Catalan数首先是由Euler在精确计算对凸n边形的不同的对角三角形剖分的个数问题时得到的,它经常出现在组合计数问题中。
问题:在一个凸n边形中,通过不相交于n边形内部的对角线,把n边形拆分成若干三角形,不同的拆分数目用h(n)表示,h(n)即为Catalan数。例如五边形有如下五种拆分方案,故h5=5。求对于一个任意的凸n边形相应的hn。

递推式:
   ∑ i = 2 n − 1 C i C n − i + 1 \sum_{i = 2}^{n - 1}C_{i}^{}C_{n - i + 1}^{} i=2n1CiCni+1

5、第二类Stirling数

n个有区别的球放到m个相同的盒子中,要求无一空盒,其不同的方案数用S(n,m)表示,称为第二类Stirling数。
递推式:

s(n + 1, m) = s(n, m – 1) + m * s(n, m)

三、总结

通过上面对五种典型的递推关系解决题目,对待递推的题目,要具体情况具体分析,通过找到某状态与其前面状态的联系,建立相应的递推关系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值