一.一些约定.
对于接下来的所有操作,我们都是给出F(x)F(x)F(x),求G(x)=T(F(x))G(x)=T(F(x))G(x)=T(F(x)),其中T()T()T()是操作函数,我们的目标是在O(n2)O(n^{2})O(n2)的时间复杂度内完成所有操作.
多项式F(x),G(x)F(x),G(x)F(x),G(x)的系数分别为fi,gif_i,g_ifi,gi.
二.多项式求逆.
对于一个多项式F(x)F(x)F(x),我们要求G(x)G(x)G(x)满足F(x)G(x)=1F(x)G(x)=1F(x)G(x)=1.
那么有:
G(x)F(x)=1∑j=0igjfi−j=0gi=−1f0∑j=0i−1gjfi−j
G(x)F(x)=1\\
\sum_{j=0}^{i}g_jf_{i-j}=0\\
g_i=-\frac{1}{f_0}\sum_{j=0}^{i-1}g_{j}f_{i-j}
G(x)F(x)=1j=0∑igjfi−j=0gi=−f01j=0∑i−1gjfi−j
其中初项g0=1f0g_0=\frac{1}{f_0}g0=f01.
三.多项式ln.
对于一个常数项为000的多项式F(x)F(x)F(x),我们要求G(x)G(x)G(x)满足G(x)=ln(1+F(x))G(x)=\ln (1+F(x))G(x)=ln(1+F(x)).
那么有:
G(x)=ln(1+F(x))G′(x)=F′(x)1+F(x)G′(x)(1+F(x))=F′(x)G′(x)=F′(x)−G′(x)F(x)(i+1)gi+1=(i+1)fi+1−∑j=0i−1(j+1)gj+1fi−jgi+1=fi+1−1i+1∑j=0i−1(j+1)gj+1fi−jgi=fi−1i∑j=1i−1jgjfi−j
G(x)=\ln(1+F(x))\\
G'(x)=\frac{F'(x)}{1+F(x)}\\
G'(x)(1+F(x))=F'(x)\\
G'(x)=F'(x)-G'(x)F(x)\\
(i+1)g_{i+1}=(i+1)f_{i+1}-\sum_{j=0}^{i-1}(j+1)g_{j+1}f_{i-j}\\
g_{i+1}=f_{i+1}-\frac{1}{i+1}\sum_{j=0}^{i-1}(j+1)g_{j+1}f_{i-j}\\
g_i=f_i-\frac{1}{i}\sum_{j=1}^{i-1}jg_{j}f_{i-j}
G(x)=ln(1+F(x))G′(x)=1+F(x)F′(x)G′(x)(1+F(x))=F′(x)G′(x)=F′(x)−G′(x)F(x)(i+1)gi+1=(i+1)fi+1−j=0∑i−1(j+1)gj+1fi−jgi+1=fi+1−i+11j=0∑i−1(j+1)gj+1fi−jgi=fi−i1j=1∑i−1jgjfi−j
其中初项g0=0g_0=0g0=0.
四.多项式exp.
对于一个常数项为000的多项式F(x)F(x)F(x),我们要求G(x)G(x)G(x)满足G(x)=eF(x)G(x)=e^{F(x)}G(x)=eF(x).
那么有:
G(x)=eF(x)G′(x)=eF(x)F′(x)G′(x)=F′(x)G(x)(i+1)gi+1=∑j=0i(j+1)fj+1gi−jgi+1=1i+1∑j=0i(j+1)fj+1gi−jgi=1i∑j=1ijfjgi−j
G(x)=e^{F(x)}\\
G'(x)=e^{F(x)}F'(x)\\
G'(x)=F'(x)G(x)\\
(i+1)g_{i+1}=\sum_{j=0}^{i}(j+1)f_{j+1}g_{i-j}\\
g_{i+1}=\frac{1}{i+1}\sum_{j=0}^{i}(j+1)f_{j+1}g_{i-j}\\
g_{i}=\frac{1}{i}\sum_{j=1}^{i}jf_{j}g_{i-j}
G(x)=eF(x)G′(x)=eF(x)F′(x)G′(x)=F′(x)G(x)(i+1)gi+1=j=0∑i(j+1)fj+1gi−jgi+1=i+11j=0∑i(j+1)fj+1gi−jgi=i1j=1∑ijfjgi−j
其中初项g0=1g_0=1g0=1.
五.多项式开方.
对于一个多项式F(x)F(x)F(x),我们要求G(x)G(x)G(x)满足G2(x)=F(x)G^{2}(x)=F(x)G2(x)=F(x).
那么有:
G2(x)=F(x)∑j=0igjgi−j=fi2g0gi=fi−∑j=1i−1gjgi−jgi=12g0(fi−∑j=1i−1gjgi−j)
G^{2}(x)=F(x)\\
\sum_{j=0}^{i}g_{j}g_{i-j}=f_i\\
2g_{0}g_{i}=f_i-\sum_{j=1}^{i-1}g_{j}g_{i-j}\\
g_i=\frac{1}{2g_0}\left(f_i-\sum_{j=1}^{i-1}g_{j}g_{i-j}\right)
G2(x)=F(x)j=0∑igjgi−j=fi2g0gi=fi−j=1∑i−1gjgi−jgi=2g01(fi−j=1∑i−1gjgi−j)
其中初项g0=f0g_0=\sqrt{f_0}g0=f0.
六.多项式求幂.
对于一个多项式F(x)F(x)F(x),我们要求G(x)G(x)G(x)满足G(x)=Fk(x)G(x)=F^{k}(x)G(x)=Fk(x),其中kkk是一个常数.
那么有:
G(x)=Fk(x)G′(x)=kF′(x)Fk−1(x)G′(x)=kF′(x)G(x)F(x)G′(x)F(x)=kG(x)F′(x)∑j=0i(j+1)gj+1fi−j=k∑j=0igj(i−j+1)fi−j+1(i+1)f0gi+1=k∑j=0igj(i−j+1)fi−j+1−∑j=0i−1(j+1)gj+1fi−j(i+1)f0gi+1=k∑j=0i(i−j+1)gjfi−j+1−∑j=1ijgjfi−j+1(i+1)f0gi+1=k(i+1)g0fi+1+∑j=1igjfi−j+1(ki−kj+k−j)gi+1=1f0(kg0fi+1+1i+1∑j=1igjfi−j+1(ki−kj+k−j))gi=1f0(kg0fi+1i∑j=1i−1gjfi−j(ki−kj−j))
G(x)=F^{k}(x)\\
G'(x)=kF'(x)F^{k-1}(x)\\
G'(x)=kF'(x)\frac{G(x)}{F(x)}\\
G'(x)F(x)=kG(x)F'(x)\\
\sum_{j=0}^{i}(j+1)g_{j+1}f_{i-j}=k\sum_{j=0}^{i}g_{j}(i-j+1)f_{i-j+1}\\
(i+1)f_{0}g_{i+1}=k\sum_{j=0}^{i}g_{j}(i-j+1)f_{i-j+1}-\sum_{j=0}^{i-1}(j+1)g_{j+1}f_{i-j}\\
(i+1)f_{0}g_{i+1}=k\sum_{j=0}^{i}(i-j+1)g_{j}f_{i-j+1}-\sum_{j=1}^{i}jg_{j}f_{i-j+1}\\
(i+1)f_{0}g_{i+1}=k(i+1)g_0f_{i+1}+\sum_{j=1}^{i}g_{j}f_{i-j+1}(ki-kj+k-j)\\
g_{i+1}=\frac{1}{f_0}\left(kg_0f_{i+1}+\frac{1}{i+1}\sum_{j=1}^{i}g_jf_{i-j+1}(ki-kj+k-j)\right)\\
g_{i}=\frac{1}{f_0}\left(kg_0f_{i}+\frac{1}{i}\sum_{j=1}^{i-1}g_{j}f_{i-j}(ki-kj-j)\right)
G(x)=Fk(x)G′(x)=kF′(x)Fk−1(x)G′(x)=kF′(x)F(x)G(x)G′(x)F(x)=kG(x)F′(x)j=0∑i(j+1)gj+1fi−j=kj=0∑igj(i−j+1)fi−j+1(i+1)f0gi+1=kj=0∑igj(i−j+1)fi−j+1−j=0∑i−1(j+1)gj+1fi−j(i+1)f0gi+1=kj=0∑i(i−j+1)gjfi−j+1−j=1∑ijgjfi−j+1(i+1)f0gi+1=k(i+1)g0fi+1+j=1∑igjfi−j+1(ki−kj+k−j)gi+1=f01(kg0fi+1+i+11j=1∑igjfi−j+1(ki−kj+k−j))gi=f01(kg0fi+i1j=1∑i−1gjfi−j(ki−kj−j))
其中初项g0=f0kg_0=f_0^{k}g0=f0k.
对于f0=0f_0=0f0=0的情况,我们可以先把最后面的几个000去掉,算完之后再添加回去.