拉格朗日反演學習筆記
阿新 • • 發佈:2021-08-03
拉格朗日反演
用於在\(O(n\log n)\)的時間內求\([x^n]G(x)\),其中\(G(x)\)滿足\(F(G(x))=x\),\(F(x)\)已知,且\([x^0]F(x)=[x^0]G(x)=0,[x^1]F(x) \neq 0,[x^1]G(x) \neq 0\)。
這裡有個小結論(我不會證):若\(F(G(x))=x\),則\(G(F(x))=x\)。
令\(g_i=[x^i]G(x)\),代入\(G(F(x))=x\)得到
\[\sum_{i=1}^{\infin} g_i\times F^i(x) = x \]兩邊求導得
\[\sum_{i=1}^{\infin} g_i\times i \times F^{i-1}(x) \times F'(x) = 1 \]考慮兩邊除以\(F^n(x)\)
當\(i\neq n\)時,\(F^{i-n-1}(x)F'(x)\)等價於\(\frac{1}{i-n}(F^{i-n})'(x)\),而任何函式求導後\(-1\)次項均為0,所以上式可以轉化為:
\[[x^{-1}] g_n\times n \times \frac{F'(x)}{F(x)}=[x^{-1}]\frac{1}{F^n(x)} \]對於\(\frac{F'(x)}{F(x)}\)
根據多項式求逆,後面那個多項式的常數項為\(1\),而前面那個多項式的\(-1\)次項的係數為1,於是\([x^{-1}]\frac{F'(x)}{F(x)}=1\)
代入得
\[g_n=[x^{-1}]\frac{1}{nF^n(x)} \]再令\(F'(x)=F(x)/x\),原式就有:
\[g_n=[x^{n-1}]\frac{x^n}{nF^n(x)}=[x^{n-1}]\frac{1}{nF'^n(x)} \]於是就可以\(n \log n\)求第\(n\)次項了。