简析递归

对于程序小白,递归思想是不太好理解的,国内相关教材对此的讲解也不够简单易懂,其实这种思想我们在高中数学已经接触过的,只是很少有人把他们联系起来。

其实,递归思想,就是经典证明方法——数学归纳法的一种灵活应用。

先来回顾下数学归纳法吧:

一般地,证明一个与自然数n有关的命题P(n),有如下步骤:
(1)证明当n取第一个值n0时命题成立。n0对于一般数列取值为0或1,但也有特殊情况;
(2)假设当n=k( k≥n0,k为自然数)时命题成立,证明当n=k+1时命题也成立。
综合(1)(2),对一切自然数n(≥n0),命题P(n)都成立。
再来看一个简单的递归函数:

int recurMul(a,n)

{

if (n == 1)

return a;

else

return a + recurMul(a,n - 1);

}


这是个用递归思想来求正整数a x n的值的函数,简单分析下,它其实就是数学归纳法的应用。

首先,n = 1是,a x 1 = a, 是一定成立的

 [(1)证明当n取第一个值n0时命题成立。n0对于一般数列取值为0或1]

其次,假定recurMul(a,n - 1)成立,recurMul(a,n) = a + recurMul(a,n - 1)也是一定成立的。

[(2)假设当n=k(k≥n0,k为自然数)时命题成立,证明当n=k+1时命题也成立。]

所以,该递归函数满足了数学归纳法(1)(2)两个条件,recurMul(a,n)肯定也是成立的,我们就可以通过

recurMul(a,n)来求a x n的值了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值