rt,主要總結一下矩陣的求法。
首先能用矩陣快速冪優化的遞推型別是f[n]=5f[n-3]+6f[n-2]+2f[n-1]+n^2+n+8之類的
也就是說遞推是線性遞推且f[n-i]前面的係數是常數,可以含有與n有關的多項式,也可以含有常數的這種遞推,下面總結一下矩陣的寫法:
先考慮最簡單的常數,我們其實可以忽略常數,因為頂多在沒有常數的矩陣外面加一行一列就行了
以f[n]=2f[n-1]+6f[n-2]+5f[n-3]+n^2+n為例
先寫迭代的矩陣,一般可以寫成一行,右邊有幾項寫幾項
如果這麼寫的話,那肯定數字矩陣是5*5的(因為1*5矩陣乘5*x矩陣等於1*5矩陣,那麼肯定x=5)
不過發現這樣不行,為什麼呢?因為n^2和n不能通過簡單的數字的四則運算得到(n+1)^2和n+1,但我們可以這樣寫
2 1 0 0 0 0 0 0
6 0 1 0 0 0 0 0
5 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0
1 0 0 0 1 0 0 0
0 0 0 1 0 1 0 0
0 0 0 1 0 0 1 0
0 0 0 0 1 2 0 1
=怎麼想到的呢??從n^2->(n+1)^2和n->n+1入手,(n+1)^2-n^2=2n+1,所以便有了後面的2n項和1項,n+1-n=1,所以便有了後面的1項。(其實多出的2n也要考慮,只不過有了1項,所以就融入在裡面了。)
當然以上的不是最簡單的,還可以化簡,不過這是一種構造方法啦= =
考慮加上常數8,就輕輕鬆鬆寫出:
2 1 0 0 0 0 0 0 0
6 0 1 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
1 0 0 0 1 0 0 0 0
0 0 0 1 0 1 0 0 0
0 0 0 1 0 0 1 0 0
0 0 0 0 1 2 0 1 0
0 0 0 0 0 0 0 0 1
=
矩陣快速冪優化遞推式
文章原位址 第一行第一列元素為第乙個矩陣的第一行的每個元素和第二個矩陣的第一列的每個元素乘積的和 以此類推 第i行第j列的元素就是第乙個矩陣的第i行的每個元素與第二個矩陣第j列的每個元素的乘積的和。單位矩陣 n n的矩陣 mat i i 1 任何乙個矩陣乘以單位矩陣就是它本身 n 單位矩陣 n,可以...
矩陣乘法 快速冪優化遞推式
對於乙個一維的遞推式,如斐波那契數列 f 0 0,f 1 1,f n f n 1 f n 2 如果想求解第n個元素,一般就是用o n 複雜度來求解,但是這不是最優的 優化方法 矩陣乘法 快速冪 首先可以用乙個矩陣遞推下一維,對斐波那契來說,這個矩陣就是 1,1 1,0 那麼我們想求第n個數,只要把這...
數學作業 遞推 矩陣快速冪
數學作業 solution 設fi表示1 i構成的數除以m的餘數,記x為i的位數。不難寫出遞推式 f i f 10 x i mod m 但是線性的遞推顯然會tle,所以考慮優化。注意到x最大只能到18,所以可以把轉移過程分成18段,這樣每一段的x都相等 那麼就可以利用矩陣快速冪加速遞推了。若狀態矩陣...