【发布时间】:2015-05-14 02:35:10
【问题描述】:
我正在寻找一种快速算法来在素数有限域中找到单变量多项式的根。
也就是说,如果f = a<sub>0</sub> + a<sub>1</sub>x + a<sub>2</sub>x<sup>2</sup> + ... + a<sub>n</sub>x<sup>n</sup> (n > 0),那么对于给定素数 p,找到所有满足f(r) = 0 mod p 的r < p 的算法。
我找到了 Chiens 搜索算法 https://en.wikipedia.org/wiki/Chien_search,但我无法想象这对于大于 20 位的素数来说会那么快。有没有人对 Chien 的搜索算法有经验或知道更快的方法?有没有一个 sympy 模块呢?
【问题讨论】:
-
citeseerx.ist.psu.edu/viewdoc/… 指出在有限域上求解多项式是分解它们的一种特殊情况,并且有随机多项式时间算法用于在有限域上分解多项式(参见例如en.wikipedia.org/wiki/…)。它说它继续描述用于求根的确定性多项式时间算法,但我还没有读到那么远。
标签: algorithm sympy polynomial-math polynomials