简析递归
来源:互联网 发布:淘宝买家延长收货几天 编辑:程序博客网 时间:2024/06/05 03:30
对于程序小白,递归思想是不太好理解的,国内相关教材对此的讲解也不够简单易懂,其实这种思想我们在高中数学已经接触过的,只是很少有人把他们联系起来。
其实,递归思想,就是经典证明方法——数学归纳法的一种灵活应用。
先来回顾下数学归纳法吧:
一般地,证明一个与自然数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
- 递归算法简析
- 简析递归
- 递归简析
- 简析递归算法
- java递归简析
- 递归算法简析
- 简析递归思想及其典型算法
- 递归简论
- 递归简论
- 递归简论
- 算法递归简论
- 递归简论学习
- 递归简论
- 递归简论
- 递归简论
- 递归
- 递归
- 递归
- CPLD 是什么?
- json基础学习
- 享元设计模式 -- 线程的不安全性
- linux grep命令详解
- 改变const限定的“常量”
- 简析递归
- 定时作业框架Quartz.net的简单应用
- linux shell 管道命令(pipe)使用及与shell重定向区别
- Python操作MySQL数据库
- 游戏性是什么:如何更好地创作与体验游戏
- iOS 开发中如何显示网络图片
- 使用transform和transition制作CSS3动画
- 欢迎使用CSDN-markdown编辑器
- 面向对象(下)