码迷,mamicode.com
首页 > 编程语言 > 详细

算法导论之数学归纳法和递归

时间:2016-05-12 12:14:39      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

推理是一种逻辑思维,一种方法论,归纳推理是从个性推导到共性的过程,而演绎推理则从共性递推到个性的过程。事物的一般性和特殊性,是推理方法的基点,通过下面例子来简单理解下归纳推理是如何从特殊上升到一般。

数学归纳法首先证明起点值命题成立,然后证明从n值到n+1的过程有效,而后任意值递推可得。

证明自然数N的阶乘N!步骤:

已知N!=N*(N-1)*(N-2)*(N-3)*…*2*1,当N=1时 N!=1,设当R(N)=N!,证明R(N+1)=(N+1)!成立。

证明过程:R(N+1)=(N+1)!=(N+1)*(N)*(N-1)*…*2*1=(N+1)*N!=(N+1)*R(N)=(N+1)!

显然递归也是利用数学归纳法的思想来构造函数,对于阶乘N!的递归函数实现如下:

factorial(int N){

if (N ==1)   return 1; /*退出*/

return  N * factorial (N - 1)   /*递归*/

}

递归函数所蕴含的递推思想,正和数学归纳法相通。递归式主函数定义如下:

技术分享

技术分享

技术分享

就不开展,对(n/b)分别在整合幂、上取整、下取整的情况。

算法导论之数学归纳法和递归

标签:

原文地址:http://blog.csdn.net/fjssharpsword/article/details/51372270

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!