一个经典的多项式问题
有的时候会遇到这样的问题:
给定多项式 \(F(x)\),求 \(F(e^x)\) 的前 \(n\) 个项。
列出式子:
\[\sum_{i=0}^{n} a_i \sum_{j=0} \dfrac{(ix)^j}{j!}
\]
我们这里将 \(\dfrac{x^t}{t!}\) 看作成 \(y^t\),虽然感觉很奇怪,但是先让我们尝试计算一下:
\[=\sum_{i=0}^{n} a_i \sum_{j=0} (iy)^j\\
=\sum_{i=0}^{n} \dfrac{a_i}{1-iy}
\]
到这个步骤为止,只需要分治通分即可,复杂度 \(O(n\log^2 n)\)。在最后将 \(y\) 还原成 \(x\) 就行了。
上面的步骤或许让我们很不放心。为什么这个东西对呢,考虑到原式等于:
\[\sum_{j=0}\dfrac{x^j}{j!} \sum_{i=0}^n a_ii^j
\]
可以看作要对每个 \(j\) 计算 \(\sum_{i=0}^n a_ii^j\)。加入辅助元以后就变成了上面的形式。
于是我们也可以发现,如果可以快速计算 \(\sum_{j=0} x^jF(i,j)\),那也可以使用相同的方法计算:
\[\sum_{j=0} b_jx^j \sum_{i=0}^n a_iF(i,j)
\]
感觉这个东西和所谓的哑演算有一定关系,可惜我水平不行看不出来。