PHP中递归和递推的探讨
我一直不是很理解何为递归,何为递推,查阅相关资料,做出如下总结。
递归函数式:
递归就是函数自身调用自己本身。
如下面的代码:求一个数的阶乘
function foo($n){
if($n==1){
return 1;
}
return $res=$n*foo($n-1);
}
因此,我想当我们面对一个大问题,该大问题可以经由该小问题的同类问题的小一级问题的简单计算获得,而且,可以获知该类问题的最小一级的答案,则,此时,我们就可以使用递归的思想来解决此问题。
递推函数:
我们在用递推的思想求一个数的阶乘!
如下代码:
function foo($n){
$start=1;
for ($i=2;$i<=$n;++$i){
$res=$start*$i;
$start=$res;
}
return $res;
}
因此,我总结递推的使用为,如果要求一个大问题且该问题有两个特点,1.已知该问题的同类问题的最小问题的答案,2如果知道这种问题的小一级问题的答案,就可以轻松的获得其上一级的问题答案,并此问题有一定的规律,此时我们就可以使用递推的思想来解决。
我认为,如果在我们的实际生产中,如果一个问题可以使用递归和递推的方法解决,我们应该首先说使用递推。