多项式算法复习
标签(空格分隔): 未分类
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)})\)
多点求值
咕咕咕
多点插值
咕咕咕
生成函数
咕咕咕