一、递推算法
1.递推算法:一种简单的算法,通过已知条件,利用特点关系第二次中间推论,直到得到结果的算法。递推算法分为顺推和逆推2种。
顺推:通过最简单的提哦啊就,逐步得到结果
逆推:通过结果分析规律,推出已经条件
二、递归算法
1.递归算法:是把问题转化为规模小的同类子问题,然后递归调用函数来解决问题
2.特点:简化问题,函数自己调用自己
3.递归算法中,2个重要的点。
递归点:发现当前问题可以由解决当前问题的函数,去解决比当前规模小的函数来解决。
递归出口:当问题解决的时候,(已到达)必须有最优子问题,不能再次调用函数。
如果没有递归出口,就是死循环。
就是用大量的空间一起工作,提高效率
//普通版(递推)
<?php
header("content-type:text/html;charset=utf-8");
function my_play($a){
if($a==1||$a==2)
return 1;
$f[1]=1;
$f[2]=1;
for($i=3;$i<=$a;$i++){
$f[$i]=$f[$i-1]+$f[$i-2];
}
return $f[$a];
}
echo my_play(15);
//升级版(递归)
<?php
header("content-type:text/html;charset=utf-8");
function my_play($a){
if($a==1||$a==2)
return 1;
else
return (my_play($a-1)+my_play($a-2));
}
echo my_play(15);