跳转至

形式幂级数复合|复合逆

形式幂级数的复合和复合逆也是常见的形式幂级数操作,对于没有特殊性质的 之前我们一直使用的多是 的算法来计算 其中 ,但是因为效率较低应用较少。我们介绍 Kinoshita–Li 的 的算法,其中 为两个次数为 的多项式相乘的时间。

形式幂级数/多项式的复合

若要计算 那么需要 的每一项系数都是有限项之和,所以之前要求 ,而如果 也可以满足这个条件。因为我们需要将 的系数截断,不妨直接考虑 都是多项式的情况。对于 ,有

我们考虑环 上的有理函数

根据 常系数齐次线性递推 中提到的 Bostan–Mori 算法,Kinoshita 和 Li 指出可以将其修改为二元形式:

这样递归的计算在 时我们只需计算

在计算 时我们不需要保留所有 的系数,因为最后我们只需要提取 的系数,所以 的系数是不需要的,而因为求出前者之后需要将其乘以若干个形如 的「多项式」,所以只需要保留对于 有贡献的系数即可。我们准备好给出伪代码:

那么我们有

注意第三个参数是因为 可能不为零,如果 此时不能截断 来计算 ,我们也可以选择计算 ,此时可以取 转而计算

另外因为调用的限制最后递归终止时的 是可以直接导出的,不需要使用形式幂级数的乘法逆元算法来计算,我们只需计算一次乘法然后提取需要的系数。

常见的特殊形式复合

我们常用的 多项式初等函数 都可以通过复合计算:

在复合逆的计算中我们也会用到求幂函数。

Kronecker 代换

在分析时间复杂度之前我们先考虑如何作二元多项式乘法,一种想法是将系数「打包」,这一方法由 Kronecker 在 1882 年通过 上的乘法缩减为 上的乘法,但是要求 足够大。

不妨设 ,那么我们计算 之后仍然可以还原出 且「打包」和「拆包」的时间为线性。

我们使用 Kronecker 代换再计算一元多项式乘法即可,不难发现在 为二的幂时上述算法可以在 时间完成,因为每一次递归中 的次数翻倍,但是 的次数减半。

形式幂级数的复合逆

现给出 ,求出 满足

根据 Lagrange 反演,对于 我们有

也就是我们如果能对 求出 ,那么就可以求出其复合逆。

Kinoshita 和 Li 指出我们可以考虑二元有理函数

且这个问题有一个更一般的形式即 Power Projection 问题:我们考虑计算

时显然有 ,否则我们有

那么

我们给出其伪代码:

同样的我们也可以直接导出 而不需要计算形式幂级数的乘法逆元,那么复合逆的算法就是

由转置原理导出

Power Projection 问题是 Modular Composition 的转置,Kinoshita 和 Li 指出我们前文的复合算法可以由 Power Projection 算法直接转置得到。同样的,如果优化可以应用于 Power Projection 算法,其也可以应用于 Modular Composition 算法。我们省略细节。

参考文献

  1. Yasunori Kinoshita, Baitian Li.Power Series Composition in Near-Linear Time. FOCS 2024.
  2. Alin Bostan, Ryuhei Mori.A Simple and Fast Algorithm for Computing the N-th Term of a Linearly Recurrent Sequence. SOSA 2021: 118-132
  3. R. P. Brent and H. T. Kung. 1978.Fast Algorithms for Manipulating Formal Power Series. J. ACM 25, 4 (Oct. 1978), 581–595.
  4. Daniel J. Bernstein. "Fast multiplication and its applications." Pages 325–384 in Algorithmic number theory: lattices, number fields, curves and cryptography, edited by Joe Buhler, Peter Stevenhagen, Cambridge University Press, 2008, ISBN 978-0521808545.