斐波那契數列第N項f N 矩陣快速冪

2022-08-03 06:42:12 字數 1317 閱讀 1432

矩陣快速冪

---!x^n+y^n=z^n

定義矩陣a(m*n),b(p*q),a*b有意義當且僅當n=p。即a的列數等於b的行數。

且c=a*b,c(m*q)。

例如:進入正題,由於現在全國卷高考不考矩陣,也沒多大了解。因為遇到了斐波那契這題...

注意到: fn+1=fn+fn-1

我們會有:

則:

所以我們只需要想辦法求矩陣a的冪,這時候我們當然想要用快速冪。

**部分:

定義矩陣:

struct

matrix;

(模擬整數的快速冪)預處理:

[我們需要一類似於1的矩陣:]

『1 0 0

0 1 0

0 0 1』類似這種操作...

void

init()

矩陣乘法:[就該題而言]

matrix mul(matrix p,matrix q)
快速冪:

void

mfpow(ll p)

}

全部的**:(lowbee的難免會差一些,請大佬們見諒...)

1 #include2 #include3 #include4

using

namespace

std;

5 typedef long

long

ll ;

6inline ll read();

7const ll mod = 1e9 + 7;8

struct

matrix;

11 matrix res,base;12

ll ans;

13 ll c[3

];14

ll n;

15namespace

lys25

matrix mul(matrix p,matrix q)

35void

mfpow(ll p) 42}

43int

main()54}

55int

main()

59inline ll read()

67while(c>='

0'&&c<='9'

)71return k*f;

72 }

斐波那契數列第n項

1 斐波那契數列第n項 在斐波那契數列中,fib0 0,fib1 1,fibn fibn 1 fibn 2 n 1 給定整數n,求fibn mod10000。輸入格式 輸入包含多組測試用例。每個測試用例佔一行,包含乙個整數n。當輸入用例n 1時,表示輸入終止,且該用例無需處理。輸出格式 每個測試用例...

1242 斐波那契數列的第N項 矩陣快速冪)

1242 斐波那契數列的第n項 斐波那契數列的定義如下 f 0 0 f 1 1 f n f n 1 f n 2 n 2 1,1,2,3,5,8,13,21,34,55,89,144,233,377,給出n,求f n 由於結果很大,輸出f n 1000000009的結果即可。input 輸入1個數n ...

1242 斐波那契數列的第N項 (矩陣快速冪模板)

1242 斐波那契數列的第n項 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏關注 斐波那契數列的定義如下 f 0 0 f 1 1 f n f n 1 f n 2 n 2 1,1,2,3,5,8,13,21,34,55,89,144,233,377,給出n,求f n...