指數級計算複雜度 呼叫Fibonacci函式次數

2022-06-07 13:54:11 字數 1622 閱讀 9490

指數級計算複雜度

計算呼叫次數

#include long fibonaccicalltimes(long n);

int main(void)

return 0;

}long fibonaccicalltimes(long n) else

}

enter an integer-satrt:0

enter an integer-end:11

fibonaccicalltimes(0)=1

fibonaccicalltimes(1)=1

fibonaccicalltimes(2)=3

fibonaccicalltimes(3)=5

fibonaccicalltimes(4)=9

fibonaccicalltimes(5)=15

fibonaccicalltimes(6)=25

fibonaccicalltimes(7)=41

fibonaccicalltimes(8)=67

fibonaccicalltimes(9)=109

fibonaccicalltimes(10)=177

fibonaccicalltimes(11)=287

請按任意鍵繼續. . .

分析上邊邏輯漏洞

正確答案:

為了計算第n個fibonacci數,共需要呼叫fibonacci函式的此時達到2^n數量級。

enter an integer-satrt:0

enter an integer-end:31

fibonacci(0)=0

fibonacci(1)=1

fibonacci(2)=1

fibonacci(3)=2

fibonacci(4)=3

fibonacci(5)=5

fibonacci(6)=8

fibonacci(7)=13

fibonacci(8)=21

fibonacci(9)=34

fibonacci(10)=55

fibonacci(11)=89

fibonacci(12)=144

fibonacci(13)=233

fibonacci(14)=377

fibonacci(15)=610

fibonacci(16)=987

fibonacci(17)=1597

fibonacci(18)=2584

fibonacci(19)=4181

fibonacci(20)=6765

fibonacci(21)=10946

fibonacci(22)=17711

fibonacci(23)=28657

fibonacci(24)=46368

fibonacci(25)=75025

fibonacci(26)=121393

fibonacci(27)=196418

fibonacci(28)=317811

fibonacci(29)=514229

fibonacci(30)=832040

fibonacci(31)=1346269

請按任意鍵繼續. . .

複雜度計算

在1 n 中,能被 2整除的有 n 2個,能被 3整除的有 n 3個,則該演算法的複雜度可這樣計算 o n n 2 1 n 3 2 n 5 3 n 7 4 即o n n n 考慮到6這個數,它既是2的倍數,也是3倍數,因此還要用到容斥原理。設能被第 i個素數整除的正整數的集合為ai。對於特定的乙個整...

計算複雜度

求極限 n 無窮大 表示式n 無窮大 表示式1 n 0 2n2 2n3 n n 3 2 n 2 1 n 2 n 無窮大的時候 2 n 0 1 n 2 0 2 常數 此演算法的時間複雜度是n 3 時間複雜度的概念 執行的次數和同數量級 n最高次方數 取商是常數 那麼同數量級就是這個演算法的時間複雜度 ...

計算時間複雜度與空間複雜度

如何衡量乙個演算法的好壞?複雜度 空間複雜度 時間複雜度 事後統計法 就是在演算法的程式執行結束後,根據實際執行結果衡量演算法好壞 事前估計法 就是在程式執行之前,先按照程式 來預估演算法的好壞 時間複雜度 用基本指令的執行次數而不是執行時間代表時間複雜度,同乙個程式在不同配置的機器下的執行時間不一...