斐波那契數(動態規劃法)

2021-08-04 17:53:09 字數 728 閱讀 3892

1.遞迴方法

//斐波那契數

#include

using

namespace

std;

int f[1000];

long

long fib(int n)

int main(int argc, char *argv)

2.自頂向下帶備忘的動態規劃法

//動態規劃法 自頂向下帶備忘

//斐波那契數

#include

using

namespace

std;

long

long f[1000];

long

long fib(int n)

}int main(int argc, char *argv)

3.自底向上動態規劃法

//動態規劃法 自底向上

//斐波那契數

#include

using

namespace

std;

long

long f[1000];

long

long fib(int n)

return f[n];

}int main(int argc, char *argv)

演算法 動態規劃法 斐波那契數列

動態規劃用於求解最優化子問題的,往往是高效的而準確的。這背後的邏輯,其實就是程式設計的最基本原理 不要讓程式做重複的事情。對於乙個複雜的問題,可以分解成若干個子問題來解決,這是分治法。每個分解的子問題,得到最優解,再通過乙個方式組合這些最優解,得到全域性最優解,這是貪心法。而其實分解的子問題,往往會...

斐波那契數 動態規劃法和分治法

這個學期開了一門叫演算法的課,為了今天的 複賽,這兩天研究了一下這門課。感覺演算法真的是太神奇了。就比如說今天學了動態規劃 小小的入門 用它實現了斐波那契數,和原來的用分治法的一比較,差距出來了。相差十幾幾萬倍 要算的數越大相差的倍數越多 下面是實現 include include using na...

動態規劃法(一)從斐波那契數列談起

動態規劃 dynamic programming 與分治方法相似,都是通過組合子問題的解來求解原問題。不同的是,分治方法通常將問題劃分為互不相交的子問題,遞迴地求解子問題,再講它們的解組合起來,求出原問題的解。而動態規劃應用於子問題重疊的情況,即不用的子問題具有公共的子子問題。在這種情況下,如果採用...