首頁>Club>
9
回覆列表
  • 1 # 使用者5018628941803

    個人粗淺理解:

    迴圈:不斷重複進行某一運算、操作。

    迭代:一般用於得到近似目標值,反覆迴圈同一運算式(函式),並且總是把前一 次運算結果反代會運算式進行下一次運算。如迭代開方:

    遞推:高中學過遞推數列,由前一項可以推出後一項,是從前面的已知結果推出未知結果。

    遞迴:一個運算(操作),可以透過不斷呼叫本身的運算形式,往往需要透過前一次的結果來得到當前運算的結果,因而,程式執行時,總是先一次次地「回溯」前一次的結果(回溯過程中這些結果是未知的,直到回溯到初值令回溯終止,再層層遞推回來得到當前要求的值)

    /*階乘函式n! 遞迴*/

    int fac(int n)

    {

    long f;

    if(n==(1||0)) f=1;

    else f=n*fac(n-1);

    return f;

    }

    /*階乘函式n! 遞推*/

    int fac_2(int n)

    {

    int i;

    long f=1;

    if(n==0) f=1;

    else for(i=1;i<=n;i++)

    f=f*i;

    return f;

    }

    上面階乘函式的例子中,記階乘函式fac(n)

    遞推:fac(n)=fac(n-1)*n

    遞迴:fac(n)=fac(n-1)*n

    其實是一樣的,不過遞迴含有呼叫前一次運算的過程(就是呼叫這個函式本身的形式),而遞推則是把具體遞推的形式寫出來,兩者形式有些不同而已。

    回溯:前面已經提到,是遞迴時經歷的一個過程。

    總結

    遞推:從初值出發反覆進行某一運算得到所 需結果。

    遞迴:從所需結果出發不斷回溯前一運算直 到回到初值再遞推得到所需結果。

    迭代:不斷對前一舊值運算得到新值直到達 到精度。

  • 中秋節和大豐收的關聯?
  • 我剛做了膽囊切除術一個月能吃些什?