題目:
題意:
給出公式f(n)=f(n-1)+f(n-2)*2+n^4
給出n f[1] f[2] 求f[n]
分析:
快速冪
把公式分解一下,求一下矩陣,矩陣快速冪搞一下就好
題目的難點在於矩陣的構造題解:
典型的矩陣快速冪的運用。關鍵是i^4怎麼維護?我們可以當成求第i+1項,那麼i^4就變成了(i+1)^4。那麼這時我們可以用二項式定理從i^4、i^3、i^2、i^1、i^0的組合中得到(i+1)^4。也就是說總共需要維護:f[i+1]、f[i]、(i+1)^4、(i+1)^3、(i+1)^2、(i+1)^1、(i+1)^0。矩陣如下:
}mat p = ;//構造出來的矩陣
int main()
}return
0;}
矩陣快速冪 矩陣構造
fibonacci數列 f 0 1 f 1 1 f n f n 1 f n 2 我們以前快速求fibonacci數列第n項的方法是 構造常係數矩陣 一 fibonacci數列f n f n 1 f n 2 f 1 f 2 1的第n項快速求法 不考慮高精度 解法 考慮1 2的矩陣 f n 2 f n ...
矩陣快速冪的構造
參考部落格 a i a i 1 b i 1 1,b i 2 a i 1 5 a 1 1,b 1 1,問a x b x 很簡單的遞推,一步步推即可,但是,如果x是10 9,如何推?思維 遞推式可以化為矩陣乘積 那麼,矩陣a i a i 1 b a i 1 a i b a i 1 bb a x a 1 ...
矩陣快速冪 構造方法
與快速冪一樣,可以將遞推式通過二進位制的方式來進行優化,這個學了快速冪就是十分容易理解 大概的板子如下 struct mat 自己定義大小的矩陣 mat mulmat mat a,mat b 兩個矩陣相乘 return ans 最後的矩陣,答案 int main 這個與快速冪寫法略有不同,主要是因為...