数学归纳法

1740阅读 0评论2013-09-23 hml1006
分类:C/C++

引言: 

   最近在读《算法引论》感觉颇有体会,以前对算法都没有一个统一的认识,现在感觉略微了解了些。总体来说感觉数学和计算机是息息相关的,真想回去再读一下数学的那些方法。在这本书里里面它主要讲了递推来实现递归(迭代),也算是数学的一个应用吧。

定理 1

  如果对于带有参数n的命题P,当n=1时P成立,并且如果对于每个n,若n时P成立能推出n+1时成立;那么对于任意自然数,P都成立。

总体来说两点:
1.当n=1时,T成立。(递推基础)

2.对于任意的n〉1,如果n成立,那么n+1时成立。

算法中:

自此,我们可以归纳递归的方法。找到递归基础,并且通过n-1时成立,推出n也成立。也就是
  

点击(此处)折叠或打开

  1. Function(n)
  2. {
  3.   if(n=1)//递归基础
  4.    
  5.     reuturn 基础值
  6.   
  7.   假设Function(n-1)已经求出,
  8.    用Function(n-1)求出n时的值
  9.    
  10. }
最简单的我们求出S(n) = 1 + 2 + 3 +.....+n

点击(此处)折叠或打开

  1. int Function(n)
  2. {
  3.   if(n 1)
  4.       return 1;
  5.   
  6.   return Function(n-1) + n;
  7. }

我也是有感而发,欢迎大家交流。


上一篇:浅谈数学在计算机中的应用
下一篇:一步一图一代码,一定要让你真正彻底明白红黑树