矩陣乘法和斐波那契數列 清北學堂

2022-05-01 02:09:12 字數 1008 閱讀 6497

這篇部落格是一邊聽課一邊寫的

兩個矩陣做乘法的先決條件是乙個矩陣的寬和另乙個矩陣的高相等

比如乙個2*3的矩陣和乙個3*4的矩陣就可以相乘

乘出來的效果是這樣的

比如有個1*2的矩陣[ a b ]  和2*1的矩陣 [ c ]

[ d ]

那乘出來的效果就是[ a*c+b*d ]

好吧並不理解

再比如[ a b ]  *  [ e f ]  =  [ ae+bg af+bh ]

[ c d ]     [ g h ]      [ ce+dg cf+dh ]

這樣矩陣乘法可以用來求一些奇怪的遞推式,如斐波那契數列和、斐波那契數列平方和等等

比如求斐波那契平方和的矩陣乘法如下

[ 1 1 3 3 1 ]  [ sum ]

[ 0 1 3 3 1 ]  [ (i-1)^3] 

[ 0 0 1 2 1 ]  [ (i-1)^2]

[ 0 0 0 1 1 ]  [ i-1 ]

[ 0 0 0 0 1 ]  [ 1 ]

兩個矩陣相乘可以搞出斐波那契的平方和

推導過程如下

首先我們看到,在每一次迴圈中  sum=sum+i^3

那麼i^3怎麼來的呢   肯定不能直接來,於是我們要往之前 的迴圈中找

也就是找到i^3和(i-1)^3的聯絡

容易推出 (i-1)^3 = i^3-3i^2+3i-1

也就是說,為了推出i^3,我們需要(i-1)^3、(i-1)^2、i-1和1

於是推出如上矩陣

首先我們發現上式移項得出i^3=(i-1)^3+3i^2-3i+1

又對上式進行配方  得到 (i-1)^3+3(i-1)^2+3(i-1)+1

我們把左面的矩陣從下往上推導

明確的知道我們需要乙個1 所以 矩陣最下面除了對應 1的第五個空填1 其他的都是0

再看倒數第二行    i=i-1+1  

第三行   i^2=(i-1)^2+2*(i-1)+1

以此類推  就醬

斐波那契數列 矩陣乘法

f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 題目描述 請你求出 f n mod 1000000007 的值。輸入輸出格式 輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入輸出樣例 輸入樣例 1 5輸出樣例 ...

矩陣乘法 斐波那契數列II III IV

ii 求出斐波那契數列的第n項 1 n 2 31 模10000的值 iii 求出f n f n 2 f n 1 1模9973的值 iv 求出f n f n 2 f n 1 n 1模9973的值 f 1 f 2 1 ii 矩陣乘法,設矩陣 那麼顯然可以乘矩陣 得到矩陣 那麼得式子 a 即 a 1 同時...

矩陣乘法 求斐波那契數列

先簡單介紹一下矩陣乘法求斐波那契數列的原理 f n 是第n項的值。f 1 1 f 2 1 f n f n 1 n 2 下面的介紹是我從網上查到了,收益匪淺。分兩步推導 問題的求解就變成 二分法可用遞迴和非遞迴來求 下面是 定義矩陣 struct matrix 定義2 2的矩陣 void mul ma...