将n次多项式相乘


35

问题是要计算多项式。假设所有系数都适合一个机器字,即可以在单位时间内进行操作。(a1x+b1)××(anx+bn)

您可以通过以树形式应用FFT 来进行次。你能做O n log n 吗?O(nlog2n)O(nlogn)


很好的问题,似乎我在某人的博客中看到了类似的内容,但我不记得它在哪里。
Grigory Yaroslavtsev

3
次要观察:我们知道(在Q,比如说工作)的n根,所以这个问题就相当于:鉴于α 1... α ñ,计算多项式X - α 1... X - α ñ。(我猜是)αi=bi/aiα1,,αn(xα1)(xαn)
ShreevatsaR

1
您可以参考结果吗?O(nlog2n)
Mohammad Al-Turkistany 2010年

2
如@Suresh所述,这是一种简单的分而治之的方法。可以将其概括为n个多边形的可以不同,在这种情况下,您可以以霍夫曼树的形式划分。请参阅Strassen:连续分数的计算复杂性。di
Zeyu 2010年

1
我们可以在时间O n log n )中计算个常数为2的向量的卷积吗?nO(nlogn)
卡韦

Answers:


7

警告:这还不是完整的答案。如果合理性的论点让您感到不适,请停止阅读。

我将考虑一个变体,我们要在复数上乘以(x-a_1)...(x-a_n)。

问题是评估n点处的多项式是双重的。我们知道,当这些点恰好是单位的第n个根时,可以在O(n log n)时间内巧妙地完成此操作。这充分利用了位于快速傅立叶变换基础上的正多边形的对称性。该变换有两种形式,通常称为时间抽取和频率抽取。在基数2中,它们依赖于偶数边规则多边形的一对对称对:互锁对称(正六边形由两个互锁的等边三角形组成)和扇形展开对称(将正六边形切成两半并像扇形一样展开)成等边三角形)。

从这个角度来看,对于任意n个点集而没有特殊对称性的O(n log n)算法似乎非常不切实际。这意味着与复杂平面中的随机点集相比,规则多边形在算法上没有什么例外。


3
Ω(nlog2n)

真正!我希望我有一个更明确的答案。非常有趣
Per Vognsen

赏金奖励!
Jeffε

@PerVognsen:您能为以下观点提供参考吗:多边形的对称性/互锁的对称性?或者,如果这是对您自己的观察,您是否可以进一步扩展?
2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.