多项式求值与线性序列计算的高效算法
1. 多点求值
在数学计算中,多点求值是一个重要的问题。若 $P$ 是 $R[X]$ 中次数为 $d$ 的多项式,$r_0, \cdots, r_d$ 是 $R$ 中的点,那么可以使用 $O(M(d) \log(d))$ 次 $R$ 中的运算和 $O(d \log(d))$ 的空间来计算 $P(r_0), \cdots, P(rd)$ 的值。这里的 $M(d)$ 是一个与多项式乘法复杂度相关的函数。
2. 求值点的平移
此部分聚焦于多项式求值点平移问题的特定情形。问题描述如下:设 $P$ 是 $R[X]$ 中次数为 $d$ 的多项式,其中 $R$ 是交换幺环,$a$ 和 $r_0, \cdots, r_d$ 属于 $R$。已知 $P(r_0), \cdots, P(rd)$,那么计算 $P(r_0 + a), \cdots, P(rd + a)$ 的速度有多快呢?
为使该问题有意义,一个合理的条件是所有 $i \neq j$ 时,$r_i - r_j$ 都是 $R$ 中的单位;否则,答案的唯一性可能会丢失。在这个假设下,利用快速插值和快速多点求值,该问题可以在 $O(M(d) \log(d))$ 次 $R$ 中的运算内得到解决。而当 $r_0, \cdots, r_d$ 构成等差数列时,成本可降低至 $M(2d) + O(d)$ 次 $R$ 中的运算,节省了一个对数因子。
具体算法如下:
- 输入 :$P(0), \cdots, P(d)$ 和 $a$ 属于 $R$
- 输出 :$P(a), \cdots,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



