多項式中步

2022-05-06 20:15:10 字數 2903 閱讀 9154

因為快要wc了所以學一下多項式全家桶,不過國賽大概率是不會考這麼難的

因為比初步難所以叫多項式中步

然而好像並不會有多項式高步

只是介紹一下符號和概念

假設\(f(x)\)是乙個多項式

\([x^i]f(x)\)表示\(f(x)\)的第i項(也就是\(x\)的係數為\(i\)的那一項)

\(f(x)\mod x^n\)相當於是將次數大於等於n的項移除

多項式除法

對於兩個多項式,存在唯一的多項式\(q(x),r(x)\)

\[f(x)=q(x)g(x)+r(x)

\]\[deg(q)=deg(f)-deg(g)

\]\[deg(r)\lessdot deg(g)

\]可以模擬初中的除法

前置知識求導

我部落格裡曾經有過,但是它咕了

由簡單的求導公式和導數運算律

我們可以知道對於乙個多項式

\[f(x)=\sum\limits_^a_ix^i

\]\[f'(x)=\sum\limits_^(i+1)a_x^i

\]積分是求導的逆運算

對於乙個導數

\[f'(x)=\sum\limits_^a_ix^i

\]\[f(x)=\sum\limits_^\frac}x^

\]

開個一億的桶

--zwj1

只會倍增法

求\(f^(x)\mod x^n\)

從小往大推

\[f^(x)\equiv([x^0]f(x))-1\pmod

\]遞迴邊界就是最後等於常數項的逆元

假設已經知道了\(\mod x^\rceil}\)的逆元\(g(x)\)

然後遞推出\(\mod x^\)的逆元\(h(x)\)(這樣記只是為了不寫上標)

\[f(x)g(x)\equiv 1\pmod\rceil}}

\]\[f(x)g(x)-1\equiv 0\pmod\rceil}}

\]因為右邊的值為0,所以此時兩邊平方之後會變成\(\pmod}\)

\[(f(x)g(x)-1)^2\equiv 0\pmod

\]\[f^2(x)g^2(x)-2f(x)g(x)+1=0\pmod

\]\[1=2f(x)g(x)-f^2(x)g^2(x)\pmod

\]兩邊同除\(f(x)\)

\[h(x)=2g(x)-f(x)g^2(x)\pmod

\]提出乙個\(g(x)\)

\[h(x)=g(x)(2-f(x)g(x))\pmod

\]遞迴就完了

雖然做了很多次ntt,但是時間複雜度是\(n\log n\)的

咕咕咕求\(g(f(x))\equiv0\pmod\)

假設已經得到了\(\mod \lceil\frac\rceil\)的答案\(f_0(x)\)

將這個函式在\(f_0(x)\)處泰勒展開

\[\sum\limits_^\frac(f_0(x))}(f(x)-f_0(x))^i\equiv0\pmod

\]易知

\(f(x)-f_0(x)\)的後\(\lceil\frac\rceil\)為\(0\),所以二次及以上的係數全為\(0\)

那後面就都沒了

\[g(f_0(x))+g'(f_0(x))(f(x)-f_0(x))\equiv0\pmod

\]\[f(x)\equiv f_0(x)-\frac\pmod

\]大概是因為這個式子長得很像牛頓迭代所以叫他多項式牛頓迭代

具體應用見多項式\(exp\)和多項式開方

求\(\ln f(x)\pmod\)

設所求為\(g(x)\)

\[g(x)=\ln f(x)\pmod

\]對兩邊求導

\[g'(x)=\ln'(f(x))f'(x)\pmod

\]\[已知ln'x=\frac

\]\[g'(x)=\frac\pmod

\]求個逆就完了

因為多項式求逆是\(o(nlogn)\)的,所以它也是\(o(nlogn)\)的

用多項式牛頓迭代

求\(f(x)\equiv e^\pmod\)

\[\ln f(x)\equiv a(x)\pmod

\]\[\ln f(x)-a(x)\equiv 0\pmod

\]\[g(f(x))=\ln f(x)-a(x)

\]\[g'(f(x))=\frac

\](這裡把\(f(x)\)看做引數,\(a(x)\)看做常數)

帶入牛頓迭代的式子

\[f(x)=f_0(x)-f_0(x)(\ln f_0(x)-a(x))\pmod

\]\[f(x)=f_0(x)(1-\ln f_0(x)+a(x))\pmod

\]因為多項式\(ln\)是\(o(nlogn)\)的,所以它還是\(o(nlogn)\)的(迫真)

低階做法

直接快速冪

時間複雜度\(o(n\log n\log k)\)

先求\(\ln\)再乘\(k\)再求\(exp\)

時間複雜度\(o(n\log n)\)

好像這樣可以實現\(o(1)\)快速冪qaq

就是對於乙個\(f(x)\),求乙個\(g(x)\)

使得\(g^2(x)=f(x)\pmod\)

和多項式求逆一樣的頹法

邊界一樣(因為板子保證了\([x^0]a(x)=1\)所以不用寫二次剩餘)

設\[f(x)\equiv\sqrt\pmod

\]\[f^2(x)\equiv a(x)\pmod

\]\[f^2(x)-a(x)\equiv 0\pmod

\]\[g(f(x))=f^2(x)-a(x)

\]\[g'(f(x))=2f(x)

\]\[f(x)\equiv f_0(x)-\frac\pmod

\]用多項式快速冪求\(a(x)^}\)咕咕

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

數學 多項式 多項式求逆

多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...

matlab多項式與非多項式擬合

擬合標準 1 原始資料向量與擬合向量之間的距離最小,該距離的度量一般使用誤差平方和表示,即均方誤差 r q y 22 2 當均方誤差最小時,說明構造的擬合向量與原始向量最為接近,這種曲線擬合的方法稱為最小二乘法 3 計算均方誤差最小時的擬合係數,可以通過微積分中求解極值的方法實現 多項式擬合 1 多...