数学归纳法:
数学归纳法有好几种形式,我们这里采用最常见的一种。其他形式,详见。
PS:有时候维基百科+百度百科,对比的看,效果更好。维基更细,但百度百科可以帮助我们总结,例子也更中国思维,更容易理解。
当我们要证明自然数范围内的某种规律时,可采用这种方法:
- 当n=1时,规律成立。
- 假设n=k时,规律成立。如果可证明n=k+1时,规律依然成立。那么该规律在自然数范围内成立。
(思想:层层递推)
递归问题:
什么时候使用递归?
- 定义是递归的:Fibonacci数列
- 数据结构是递归的:链表
- 问题解法是递归的:Hanoi塔
Hanoi problem:
特别感谢:https://www.cnblogs.com/xxNote/articles/3965739.html
以及严蔚敏老师的《数据结构》
假设圆盘的个数为n,圆盘编号从上到下依次为1,2,3,4,……n,我们开始从中找规律:
①当 n = 1 时,从 A 移动到 C 显然能够完成,设需要移动的次数是a1。
②当 n = 2 时,由①可知从把 1 号盘子从 A 移动到 B能够完成(B 和 C 是等效的)此时移动次数为a1。
之后把2号盘子移动到C上面此时移动次数为a1 + 1。
这时把1号盘子从B移动到C和①是等价的,
移动后总的移动次数是a2 = a1 + 1 + a1。
③当n = 3时,由②可知移动成下图的效果是可以实现的,
此时移动的次数是a2,接着把3号盘子移动到C上面
此时移动的次数是a2 + 1,这时把1和2号盘子移动到C上面(移动过程中3号盘子始终不会动)和②等效的,移动完成之后如下
移动的总次数是a3 = a2 + 1 + a2
④当n=4时,由③可知移动成下图的效果是可以实现的,
此时移动的次数是a3
把4号盘子从A移动到C
此时移动的次数是a3 + 1
接下来把123号盘子从B移动到C的过程又和③等效了移动之后如下
移动的总次数是a4 = a3 + 1 + a3
数学归纳法,首先,针对具体的问题,我们要归纳总结出规律。从上述例子中,我们可以得出规律:(n>1)
a n = a n − 1 + 1 + a n − 1 a_{n}=a_{n-1}+1+a_{n-1} an=an−1+1+an−1
利用数学归纳法证明:
- 当k=1,2时,