多項式求逆

2021-08-09 01:41:55 字數 1275 閱讀 3229

你可能覺得這篇部落格很像網上的另一篇,我會告訴你我是抄的無可奉告=w=

首先我們來講一些基礎的定義:

多項式的度:就是這個多項式的最高次項的次數,記做deg(a)

對於多項式a(x),b(x),唯一存在多項式q(x),r(x)滿足a(x)=b(x)q(x)+r(x),並且deg(r)< deg(b)

那麼我們稱q(x)為a(x)除以b(x)的商,r(x)稱作餘數,記做a(

x)≡r

(x)mod(b

(x))

對於多項式a(x),b(x),deg(b)<=deg(a),滿足a(

x)b(

x)≡1

mod(xn

) 那麼稱b(x)為a(x)模x^n意義下的逆元

你可以理解成只取前n位的係數,只有常數項是1

這篇文章就是在告訴你如何在o(n log n)的複雜度內對於乙個多項式求逆

沒錯我們就是倍增emmmm

當n=1時,兩個多項式都只有常數項,那麼直接求就好了

當n>1時,假如我們已經求出了b′

(x) 表示a(x)模x^(n/2)的逆

那麼我們有 a(

x)b(

x)≡1

mod(xn

/2)

a(x)

b′(x

)≡1mod(x

n/2)

於是a(

x)(b

(x)−

b′(x

))≡0

mod(xn

/2)

b(x)

−b′(

x)≡0

mod(xn

/2)

兩邊平方,可以發現所得多項式的x^(n/2+1)~x^n項的係數都是0

這個自己畫一畫很好理解 於是b

2(x)

−2b(

x)b′

(x)+

b′2(

x)≡0

mod(xn

) b(

x)−2

b′(x

)+a(

x)b′

2(x)

≡0mod(xn

) b(

x)≡b

′(x)

(2−a

(x)b

′(x)

)mod(x

n)直接fft就可以了

複雜度t(n)=t(n/2)+o(n log n)=o(n log n)

模擬這東西還可以推出多項式開根

然而並不知道什麼題目能用。。。。

多項式求逆

問題 求多項式 g x 滿足 f x g x equiv 1 pmod q1 這是什麼意思?a1 即 f x g x 最後只有常數項係數為 1 其餘係數都為 0 q2 為什麼要求模 x n a2 這是為了將 n 次方以上的項全都除去,否則 g x 會有無窮多項。用倍增的方法可以 o n log n ...

多項式求逆

給定乙個多項式 f x 請求出乙個多項式 g x 滿足 f x times g x equiv 1 mathrmx n 假設我們已經求得了 g 0 x 滿足 f x times g 0 x equiv 1 mathrmx frac 現在求 f x times g x equiv 1 mathrmx ...

多項式求逆

多項式求逆指的是給定乙個多項式 f x 求出乙個多項式 g x 滿足 f x g x equiv1 pmod 我們稱乙個多項式的 度 為其最高次項係數 1 首先,我們知道當 n 1 的時候,顯然 g x 即為 f x 的常數項之逆元 我們將原式寫成模 x 意義下的形式 f x g x equiv1 ...