fibonacci數列矩陣快速冪

2021-07-03 06:54:19 字數 397 閱讀 6427

對於矩陣 [ 1 1  

1 0 ] 的n次冪,第一行第二個元素(右上角)的元素即為fibonacci數列的第n項,由此可以根據矩陣的乘法計算fibonacci數列的元素值

矩陣的快速冪利用的也是冪乘的二分法,只不是換成了矩陣的乘法,可以用函式處理。

/*可以定義乙個二維陣列的結構體*/

typedef struct matrix

matrix;

matrix m0,m1;

/*初始化*/

void init()

/*矩陣乘法*/

matrix mul(matrix x,matrix y)

/*快速冪*/

matrix pow(int n)

Fibonacci數列(矩陣乘法快速冪)

題目描述 定義 f0 f1 1,fn fn 1 fn 2 n 2 稱為fibonacci數列。輸入n,求fn mod q。其中1 q 30000。輸入描述 第一行乙個數t 1 t 10000 以下t行,每行兩個數,n,q n 109,1 q 30000 輸出描述 檔案包含t行,每行對應乙個答案。樣例...

Fibonacci數列 利用矩陣快速冪

fibonacci數列就形如 0,1,1,2,3,5,8,13,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 可以看出 第1項為0,第2項為1,第三項為1,第四項為2 第三項 第二項,第n項 第 n 1 項 第 n 2 項 即 f n f n 1 f n 2 設 a為m p 的矩陣,b為p ...

Fibonacci(矩陣快速冪)

菲波那契數列是指這樣的數列 數列的第乙個是0和第二個數是1,接下來每個數都等於前面2個數之和。給出乙個正整數a,要求菲波那契數列中第a個數的後四位是多少。input 多組資料 1結束 範圍1 10 9 output 第x項的後4位 sample input09 999999999 100000000...