斐波拉契數列(高階) 解題報告

2021-10-09 13:29:58 字數 924 閱讀 9898

ana

n−1a

n−1a

n−2}

(5)\begin an & an-1 \\ an-1 & an-2 \end \tag

(5)

(5)\begin 1 & 1 \\ 1 & 0 \end \tag

(5)上面兩個相乘,且根據斐波拉契數列,會得到這樣乙個結果:

(5)\begin an+1 & an \\ an & an-1 \end \tag

(5)此時我們就能夠不斷得到斐波拉契數列後續的項了,而因為每次所乘的矩陣都相同,所以我們可以使用矩陣快速冪來實現這一過程,最終,時間複雜度o(logn)。

正解**

#include

#include

#include

#include

#define mod 1000000007

using

namespace std;

typedef

long

long ll;

struct node

;ll n,k;

node init()

}return res;

}node matrix_mul

(node temp1,node temp2)

}return ans;

}node matrix_pow

(node temp,ll p)

return ans;

}int

main()

a=matrix_pow

(a,k-1)

;printf

("%lld"

,a.a[1]

[1])

;return0;

}

斐波拉契數列

斐波拉契數列 1 1 2 3 5 8 13 21 34.其中每乙個數字都是前兩個數字的和。遞迴計算 long fibonacci int n 非遞迴計算 long fibonacci int n return result 這個函式的遞迴實現使用了雙重遞迴 double recursion 函式對本...

斐波拉契數列

編寫彙編程序列印1 1000的斐波拉契數列 原始碼assume cs code,ss stack,ds data data segment fibo dw 0,1,64 dup 0 str db the fibo list is 0ah,0dh,data ends stack segment db ...

斐波拉契數列

斐波拉契數列 這個數列從第三項開始,每一項都等於前兩項之和。已知斐波拉契數列的前兩項都是1,我們定義求斐波拉契數列的第n項 n 50 的函式為fbnq,請補充完成對fbnq函式的定義。輸入格式 共一行,為乙個正整數。輸出格式 共一行,為乙個正整數。輸入樣例 7輸出樣例 13 斐波拉契數列 def f...