常係數線性遞推式的快速求單項值方法

2021-07-11 19:44:47 字數 1068 閱讀 8480

cayley-hamilton定理

模多項式

設有遞推式f(

n)=∑

ki=1

aif(

n−i)

,我們需要求f(

m)。通常而言,我們是構建乙個k階的矩陣

a ,稱a為遞推式的伴隨矩陣(adjoint matrix);構建乙個向量

t,其中t1

,i=f

(i) ,而(t

am−k

)1,1

就是f(

m)的值。構建

a 和

t都是平凡的,這裡不再贅述。

那麼問題轉化為求(t

ap)1

,1的值,而主要的瓶頸在於求ap

的值。設a

p=kg

(a)+

l ,其中

l 為ap

模g(a

) 的餘多項式。容易發現g(

λ)=λ

|a|−

∑|a|

i=1a

iλ|a

|−i 。由cayley-hamilton定理,g(

a)=0

,於是我們只需要關注

l ,也就是說我們只需要求出ap

模g(a

) 。這是簡單的快速冪模多項式,使用fft可以在o(

|a|log|a

|logp)

的時間內

完成它 。

最終我們得到ap

=∑|a

|−1i

=0bi

ai。注意到我們現在僅關心[t

(∑|a

|−1i

=0bi

ai)]

1,1 ,而對於|a

|−1≥

i≥0 ,(t

ai)1

,1都直接表示f(

i+1)

的值,這也就是遞推的初值,於是答案就是∑|

a|−1

i=0b

if(i

+1) 。

總時間複雜度為o(

klog

klogm)

高階操作 常係數線性遞推式

對乙個常係數線性遞推式 f n sum k a i times f 矩陣快速冪需要 o k 3logn 這篇文章將教您在至多為 o k 2logn k 4 時間內搞這個式子 有什麼用嘛,可能對我這種省選注定退役的人沒啥用,但對於 noi 及以上比賽想 ak 的同學們可能有用 1.矩陣的特徵多項式 矩...

矩陣快速冪 求解常係數齊次線性遞推式

先說矩陣a的n次冪 an 的快速冪的求法 因為矩陣乘滿足結合律,所以矩陣的快速冪和前面普通快速冪原理都一樣,主要在於矩陣乘法的運算 1.1 直接模擬矩陣乘 m行 用結構體存矩陣 乙個結構體可以直接賦值另乙個結構體 struct mat mat init mat mat mul mat a,mat b...

常係數齊次線性遞推快速演算法學習筆記

今天集訓被線代狠狠的虐了一發。不過還有一點收穫的,比如這個。數列 f 滿足 f n sum limits ka if n ge k 其中 a 1 dots a k,f 0 dots f 均給出。求 f n n le 10 9,k le 30000 先要弄懂一些基本定義,矩陣,行列式,高斯消元這些基本...