2.递推关系(一)

本文介绍了递推算法的核心——递推关系,包括一阶递推、多阶递推、间接递推、多维递推和逆向递推。以取石头游戏为例,详细分析了游戏的胜负策略,并给出了递推关系式和递推起点的确定方法。最后,提供了C语言的代码实现。
摘要由CSDN通过智能技术生成

在计算机进行计算时,使用首项和递推公式很容易计算出每个元素的值。递推关系实质上可以视为是递归函数关系,例如等差数列的递推公式 f(i)=f(i-1)+d 看做递归函数时,表明求解函数值f(i)需要用到函数值f(i-1) 。

递推关系是递推算法的核心,有以下类别的递推关系:

  1. 一阶递推:在计算f(i)时,只使用到前面(指项的位置小于i)计算过的一项。例如等差数列:f(i)=f(i-1)+d
  2. 多阶递推:在计算f(i)时,需要使用到前面计算过的多项。例如Fibonacci数列:f(i)=f(i-1)+f(i-2)
  3. 间接递推:在计算f(i)时,使用一个中间量,而中间量则需要使用前面计算过的项。例如:f(i)=g(i-1)+3 ; g(i)=f(i-1)+1
  4. 多维递推:元素处于一个多维矩阵中,递推需要使用矩阵中其他位置的元素。例如:f(i,j)=f(i-1,j-1) + f(i-1,j-2)
  5. 逆向递推:这种计算不是从前面的元素往后递推,而是反过来。例如:f(i)=f(i+1)+3

在递推算法中,除了寻找递推关系外,还需要确定递推起点。递推起点值需要通过非递推的方式给出,其他的数据项才能够通过递推关系式计算出。

在编程时可以用一维数组f来存储所有的元素值,递推的过程就是利用公式逐个填写数组元素值的过程。

(以上内容参考教材讲解)

下面来看具体的实例:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值