zoukankan      html  css  js  c++  java
  • php 递推 递归

    思想:如何利用数学模式,来解决对应的需求问题,然后利用代码实现对应的数据模型(逻辑)

    算法:使用代码实现对应的数学模型,从而解决对应的业务问题

    递推算法是一种简单的算法,级通过已知条件,利用特定关系得出中间推论,直至得到结果的算法,分为顺推和逆推两种

      顺推:通过最简单的条件(已知)然后逐步推演结果

      逆推:通过结果找到规律,然后推到已知条件

    斐波那契数列:1,1,2,3,5,8,13...

    $f[1] = 1;
    $f[2] = 1;
    $def  = 15;
    for($i = 3;$i < $des;$i++){
        $f[$i] = $f[$i-1]+$f[$i-2];
    }
    echo '<pre>';
    print_r($f);
    function my_k($des){
        if($des == 1||$des ==2) return 1;
        $f[1] = 1;
        $f[2] = 1;
        for($i = 3;$i < $des;$i++){
            $f[$i] = $f[$i-1]+$f[$i-2];
        }
        return $f[$des];
    }
    echo my_k(15);  

     递归

      是把问题转化为规模缩小的同类问题的子问题,然后递归调用函数(或过程)来表示问题的解

       简化问题找到最优子问题

      函数自己调用自己

      

      递归点:发现当前问题可以有解决当前问题的函数,去解决规模比当前小一点的问题来解决

        F(N) = F(N - 1) + F(N - 2);

      递归出口:当前问题解决的时候,已经到达(必须有)最优子问题,不能再次调用函数

      如果一个函数递归调用自己而没有递归出口:就是死循环

      递归本质是函数调用函数:一个函数需要开辟一块空间,递归会出现同时调用N多个函数(自己):递归的本质是利用空间换时间

    function rec($n){
        // 递归出口
        if($n == 1|| $n == 2) return 1;
        // 递归点:求N的值,与N - 1的值一模一样,只是N-1的规模比N小
        return rec($n - 1) + rec($n - 2);
    }
    echo rec(15);

    -----

  • 相关阅读:
    JMeter测试WEB性能入门
    Monkey测试运用实例
    Event percentages解析
    Monkey测试结果分析
    Monkey测试环境搭建
    Appium+java移动端项目测试问题整理
    appium定位安装包启动类名称
    Appium元素定位(uiautomatorviewer)
    Appium环境搭建(Windows版)
    Selenium+java项目测试问题整理
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/9975088.html
Copyright © 2011-2022 走看看