1. 程式人生 > >淺談演算法——從多項式乘法到FFT

淺談演算法——從多項式乘法到FFT

多項式乘法

我們知道,多項式可以表示成:

A=i=0naixi的形式。
對於兩個多項式A(x)B(x),我們可以計算乘積ABAB=i=0sizeAj=0sizeBaibjxi+j
但是,這樣算是O(sizeAsizeB)的,太慢了,怎麼辦?
我們需要換一條思路。

首先,我們得知道一個東西:多項式的點值表示法
我們把上面的稱為多項式的係數表示法,而點值表示法就是:
A多項式的次數為n,則任取n個不相同的x0,x1,,xn,求出

A多項式的A(x0),A(x1),,A(xn)。記為:

<(x0,A(x0)),(x1,A(x1)),,(xn,A(xn))>顯然,一個有n+1個點的點對唯一表示一個n次多項式。

對於一個點值表示法下多項式

<(x0,A(x0)),(x1,A(x1)),,(xn,A(xn))><(x0,B
(x0)),(x1,B(x1)),,(xn,B(xn))>
它們的乘積是