Skip to content

Latest commit

 

History

History

DynamicProgrammingFibonacci

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

動態規劃費氏數列

費氏數列,又稱黃金分割數列,是自然界中非常常見的數列。它是由以下遞迴式所定義:

產生以下數列:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

請根據動態規劃撰寫產生費氏數列的程式,輸入為數列的序數,輸出為費氏數列的數值。

通過將問題分解成多個子問題來求解複雜的問題,通常子問題會有重複性所以會搭配一些 Cache 技巧來避免重複計算子問題。

以 Fibonacci Sequence 來說 $ f(n) = f(n-1) + f(n-2) $ 當中的 $ f(n-1) $ 就是一個子問題,我們可以通過 Cache 記住 $ f(i) $ 來避免重複計算

測試

@test fibonacci(0) == 0
@test fibonacci(1) == 1
@test fibonacci(2) == 1
@test fibonacci(4) == 3

測試資料

fibonacci(0)
fibonacci(1)
fibonacci(2)
fibonacci(4)
fibonacci(10)
fibonacci(50)