一个经典的多项式问题

有的时候会遇到这样的问题:

给定多项式 \(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) \]

感觉这个东西和所谓的哑演算有一定关系,可惜我水平不行看不出来。

posted @ 2023-01-27 15:18  一般通过小萌新  阅读(220)  评论(2编辑  收藏  举报