Slide 41
Slide 41 text
FFT로 O(n log n) 곱셈하는 알고리즘 정리
(Cooley–Tukey FFT algorithm)
A(z) = a0 +a1z+· · ·+an−1zn−1, B(z) = b0 +b1z+· · ·+bn−1zn−1
1 A, B를 2n − 1차 다항식으로 생각해서,
(a0, a1, · · · , a2n−1)의 DFT (p0, p1, · · · , p2n−1)을 구하고
(b0, b1, · · · , b2n−1)의 DFT (q0, q1, · · · , q2n−1)을 구한다.
FFT 두번 하므로 O(n log n) 걸린다.
2 구한 두 DFT 벡터의 pointwise 곱 (p0q0, · · · , p2n−1q2n−1)을
구한다. O(n)
3 이 녀석을 다시 DFT 하면, (2n · c0, 2n · c1, · · · , 2n · c2n−1) 이
얻어진다. O(n log n)
4 c0, c1, · · · , c2n−1
이 C(z) = A(z)B(z)의 계수이다.
Jongwook Choi Fast Fourier Transform