PHP有关函数的编程思想(递归与迭代)
admin
2023-06-25 02:41:37
0次

PHP有关函数的编程思想(递归与迭代)



递归思想(递归函数):

    递归思想的一个基本形式是:在一个函数中,有至少一条语句,会去调用该函数自身。

    但是从代码角度来说,如果单纯是函数内部调用函数,则会出现“出不来”的现象。

    则我们就必须再来解决下一个问题:怎么终止(停止)这种自身的调用 -- 找到递归函数的出口

    PHP有关函数的编程思想(递归与迭代)


案例分析:写一个递归函数,该函数可以计算一个正整数的阶乘

    数学基础:

        A:1的阶乘是1

        B:大于1的数的阶乘是这个数减1的数的阶乘,乘以该数的结果。

比如:要求6的阶乘:则定义一个函数jiecheng() {......};该函数可以计算n的阶乘

    PHP有关函数的编程思想(递归与迭代)


递归思想的总结:

    为了解决一个“大”问题,根据现实逻辑,该问题可以通过比它小一级的同类问题的答案而“轻松得到”。小一级的问题又可以通过更小一级的问题而轻松得到,依次类推 -- 直到“最小问题”,通常就是一个已知数(已知答案)。


递归思想的图示:

    PHP有关函数的编程思想(递归与迭代)


迭代思想(递推思想):


    递推思想本身并不跟函数有直接关系(虽然常常写在函数中)

    其基本思路为:

        为了解决一个“大”问题,根据现实逻辑,如果能够找到同类问题的一个“最小问题”的答案(通常是已知的),并且根据已知算法,又可以因此得到比最小问题“大一级”问题的答案。而且,依次类推,又可以得到再大一级问题的答案。最终就可以得到“最大那个问题”(即要解决的问题)的答案。

    可见,该思想的过程依赖于2个条件:

        1:可知同类最小问题的答案

        2:大一级问题的答案可以通过小一级问题的答案经过简单运算规则而得到。


    此思想的解题思路是:从小到大。对比递归思想是:从大到小,再回归到大。


举例:求斐波那契数列的第n项的值:

斐波那契数列(Fibonacci Sequence)的规则是:某项的值是其前两项的值的和。前几项的值为:1,1,2,3,5,8,13,21......(前两项是已知的)

PHP有关函数的编程思想(递归与迭代)


递推算法的图示:

PHP有关函数的编程思想(递归与迭代)

总结比较:

    1:很多问题,用递归和递推都可以解决。

    2:有些问题只能用递归

    3:如果两种方法都可以解决,推荐使用递推 -- 效率高很多!

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...