PHP有关函数的编程思想(递归与迭代)
创新互联-专业网站定制、快速模板网站建设、高性价比潮阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式潮阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖潮阳地区。费用合理售后完善,十多年实体公司更值得信赖。递归思想(递归函数):
递归思想的一个基本形式是:在一个函数中,有至少一条语句,会去调用该函数自身。
但是从代码角度来说,如果单纯是函数内部调用函数,则会出现“出不来”的现象。
则我们就必须再来解决下一个问题:怎么终止(停止)这种自身的调用 -- 找到递归函数的出口
案例分析:写一个递归函数,该函数可以计算一个正整数的阶乘
数学基础:
A:1的阶乘是1
B:大于1的数的阶乘是这个数减1的数的阶乘,乘以该数的结果。
比如:要求6的阶乘:则定义一个函数jiecheng() {......};该函数可以计算n的阶乘
递归思想的总结:
为了解决一个“大”问题,根据现实逻辑,该问题可以通过比它小一级的同类问题的答案而“轻松得到”。小一级的问题又可以通过更小一级的问题而轻松得到,依次类推 -- 直到“最小问题”,通常就是一个已知数(已知答案)。
递归思想的图示:
迭代思想(递推思想):
递推思想本身并不跟函数有直接关系(虽然常常写在函数中)
其基本思路为:
为了解决一个“大”问题,根据现实逻辑,如果能够找到同类问题的一个“最小问题”的答案(通常是已知的),并且根据已知算法,又可以因此得到比最小问题“大一级”问题的答案。而且,依次类推,又可以得到再大一级问题的答案。最终就可以得到“大那个问题”(即要解决的问题)的答案。
可见,该思想的过程依赖于2个条件:
1:可知同类最小问题的答案
2:大一级问题的答案可以通过小一级问题的答案经过简单运算规则而得到。
此思想的解题思路是:从小到大。对比递归思想是:从大到小,再回归到大。
举例:求斐波那契数列的第n项的值:
斐波那契数列(Fibonacci Sequence)的规则是:某项的值是其前两项的值的和。前几项的值为:1,1,2,3,5,8,13,21......(前两项是已知的)
递推算法的图示:
总结比较:
1:很多问题,用递归和递推都可以解决。
2:有些问题只能用递归
3:如果两种方法都可以解决,推荐使用递推 -- 效率高很多!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:PHP有关函数的编程思想(递归与迭代)-创新互联
分享路径:http://lswzjz.com/article/cosced.html