Algorithm 求多项式系数的最佳复杂度

Algorithm 求多项式系数的最佳复杂度,algorithm,polynomial-math,coefficients,Algorithm,Polynomial Math,Coefficients,我想找出根为0,1,2…n-1的n次多项式的系数。有人能提出一个好的算法吗?我尝试使用FFT,但速度不够快如上所述,您可以通过以下简单方法完成此操作: def poly(lst, x): n, tmp = 0, 0 for a in lst: tmp = tmp + (a * (x**n)) n += 1 return tmp print poly([1,2,3], 2) 我将使用的简单解决方案是编写如下函数: def poly_with_root_seque

我想找出根为0,1,2…n-1的n次多项式的系数。有人能提出一个好的算法吗?我尝试使用FFT,但速度不够快

如上所述,您可以通过以下简单方法完成此操作:

def poly(lst, x): 
  n, tmp = 0, 0
  for a in lst:
    tmp = tmp + (a * (x**n))
    n += 1

  return tmp

print poly([1,2,3], 2)

我将使用的简单解决方案是编写如下函数:

def poly_with_root_sequence (start, end, gap):
    if end < start + gap:
        return Polynomial([1, -start])
    else:
        p1 = poly_with_root_sequence(start, end, gap*2)
        p2 = poly_with_root_sequence(start+gap, end, gap*2)
        return p1 * p2

answer = poly_with_root_sequence(1, n, 1)
使用朴素的算法,这将进行^2次算术运算。然而,一些行动将涉及大量人员。注意n!对于较大的n,有n个以上的数字。但是我们已经安排了很少的行动会涉及到非常大的人数

除非您使用具有非常快速乘法算法的多项式实现,否则仍然不可能以您想要的速度生成答案


宣传自己是Python中乘法多项式的FFT算法的实现。我无法证实这一点。但是它给了你一个相当快的机会。

我没有系数,我有根。所以要得到一个n多项式表达式的所有系数,你可以检查这个参考:理论上正确的解和可接受的快速解之间存在着巨大的差异。问题不在于如何计算,而在于如何快速计算。有无数个多项式都有这些根。你要的是x-1x-2x-3…x-n的系数吗?还有,计算所有系数意味着什么?你的意思是从根生成系数吗?如果是这样,那么@btilly的问题措辞是正确的。或者你的意思是:计算隐含多项式的具体值x,只计算多项式的根。如果是这样,那么只需计算@btilly给出的公式即可。但这是两个不同的问题。