首页 > 技术文章 > 多项式算法复习和生成函数复习

cx233666 2019-02-02 21:08 原文

多项式算法复习

标签(空格分隔): 未分类


FTT,NTT,MTT

抱歉,不打算讲。

多项式加减法

抱歉,不打算讲。

多项式乘法

抱歉,不打算讲。

多项式求逆

\(A(x)B_t(x)\equiv1(\mod x^{2^t})\)

\(A(x)B_t(x)-1\equiv0(\mod x^{2^t})\)

\((A(x)B_t(x)-1)^2\equiv0(\mod x^{2^{t+1}})\)

\((A(x)B_t(x))^2-2A(x)B_t(x)+1\equiv0(\mod x^{2^{t+1}})\)

\(B_{t+1}(x)(A(x)B_t(x))^2-2B_{t+1}(x)A(x)B_t(x)+B_{t+1}(x)\equiv0(\mod x^{2^{t+1}})\)

\(B_{t+1}(x)\equiv 2B_t(x)-A(x)B_t^2(x)(\mod x^{2^{t+1}})\)

边界条件\(B_0(x)=1\)

多项式牛顿迭代

\(F(B_t(x))\equiv0(\mod x^{2^t})\)

\(F(B_{t+1}(x))\)\(B_t(x)\)处泰勒展开。

\(F(B_{t+1}(x))=F(B_t(x))+\frac{F'(B_t(x))}{1!}(B_{t+1}(x)-B_t(x))\)

因为后面的项在\((\mod x^{2^{t+1}})\)下为\(0\)。所以不管。

化简一下(注意到\(F(B_{t+1}(x))\equiv0(\mod x^{2^{t+1}})\)

\(B_{t+1}(x)=B_t(x)-\frac{F(B_t(x))}{F'(B_t(x))}\)


会求逆和迭代后,多项式算法就没有特别毒瘤的东西了。


多项式带余除法

\(A^R(x)\)\(A(x)\)系数翻转后的多项式,则\(A^R(x)=x^nA(\frac 1x)\)

\(A(x)=B(x)C(x)+R(x)\)其中\(A(x)\)的项数是\(n\)\(B(x)\)的项数是\(m\),\(R(x)\)的项数是\(m-1\)

\(x^nA(\frac 1x)=x^mB(\frac 1x)x^{n-m}C(\frac 1x)+x^nR(\frac 1x)\)

\(A^R(x)=B^R(x)C^R(x)+x^{n-m+1}R^R(x)\)

我们把它换到模\(x^{n-m+1}\)意义下。

就可以用多项式求逆算\(C(x)\)了,然后带回去,就可以算\(R(x)\)了。

多项式ln

\(lnA(x)=B(x)\)

\(\frac {A'(x)}{A(x)}=B'(x)\)

\(B(x)=\int\frac{A'(x)}{A(x)}\)

多项式exp

\(F(B_t(x))=lnB_t(x)-A(x)\)

\(F'(B_t(x))=\frac 1{B(x)}\)

\(B_{t+1}(x)\equiv B_t(x)(1-lnB_t(x)+A(x))\)

多项式开方

\(F(B_t(x))=B_t^2(x)-A(x)\)

\(F'(B_t(x))=2B_t(x)\)

\(B_{t+1}(x)\equiv B_T(x)-\frac{B_t^2(x)-A(x)}{2B_t(x)}\)

化简一下就是\(B_{t+1}=\frac 12(B_t(x)+\frac {A(x)}{B_t(x)})\)

多点求值

咕咕咕

多点插值

咕咕咕


生成函数

咕咕咕

推荐阅读