大家好,我是被白菜拱的猪。
- 啥是递归?
《盗梦空间》中梦中梦,梦中梦中梦,看到最后MMP这他妈到底是梦还是现实。递归也可以理解为做梦,还要做梦的前提必选要建立在原先的基础上。所以我们把程序程序调用自身的编程技巧称为递归。 - 斐波那契数列
我们可以用递归来解决斐波那契数列问题 。
1 1 2 3 5 8 13 21 34…当前数等于前两个数相加
long 获取斐波那契数(long index) {
if (index == 1 || index == 2) {
return 1L;
} else {
return 获取斐波那契数(index - 1) + 获取斐波那契数(index - 2);
}
}
为了便于理解,这里方法名用中文“获取斐波那契数(long index)”表示。此时在该方法里面又调用了该方法,这就是运用了递归的思想。
- 总结
数学归纳法我们高中都学过,告诉你a1=xx,成立。假设n=k,成立,看n=k+1是否成立。递归亦是如此,都是从第一级开始然后找第二级与第二级的关系,以此类推。
所以每一次执行都要从第一级开始,当操作数量很多时,得到结果的时间的会成几何级增加,
这让联想到荷花定理
一个荷花池,第一天荷花开放的很少,第二天开放的数量是第一天的两倍,之后的每一天,荷花都会以前一天两倍的数量开放。
如果到第30天,荷花就开满了整个池塘,那么请问:在第几天池塘中的荷花开了一半?
第15天?
错!是第29天。
很多人的一生就像池塘里的荷花,一开始用力地开,玩命地开…
但渐渐的,你开始感到枯燥甚至是厌烦,你可能在第9天、第19天甚至第29天的时候放弃了坚持。
这时,往往离成功只有一步之遥。
拼到最后,拼的不是运气和聪明,而是毅力。
我也不知道两者是怎么关联起来的…