FFT快速傅里叶变换(加速多项式乘法)
传送门:H. Needleand
传送门:Rock Paper Scissors
多项式乘多项式 常规想法:时间o( n 2 n^2 n2) FFT时间缩减至o( n l o g n nlogn nlogn);
多项式: f ( x ) = a 0 x 0 + a 1 x 1 + a 2 x 2 + . . . . . . . . + a n x n ; f(x)=a_0x^0+ a_1 x^1 +a_2x^2+........+a_nx^n; f(x)=a0x0+a1x1+a2x2+........+anxn;
前置知识
1.点值表示法:f(点,点值) 表示一对
适用 ( x 0 , f ( x 0 ) ) , x 1 , f ( x 1 ) ) , x 2 , f ( x 2 ) ) , . . . . . . . , ( x n , f ( x n ) ) ) (x_0,f(x_0)),x_1,f(x_1)) ,x_2,f(x_2)) , .......,(x_n,f(x_n)) ) (x0,f(x0)),x1,f(x1)),x2,f(x2)),.......,(xn,f(xn)))就可以完整描述出这个多项式,这就是 多项式的点值表示法。
2.多项式相乘
对于 f ( x ) , g ( x ) f(x),g(x) f(x),g(x)多项式相乘:思路是这样先多项式转为点值表达式,两多项式乘积 ,再拆解成一项一项。
f[x]= ( x 0 , f ( x 0 ) ) , ( x 1 , f ( x 1 ) ) , ( x 2 , f ( x 2 ) ) , . . . . . . . , ( x n , f ( x n ) ) ) (x_0,f(x_0)),(x_1,f(x_1)) ,(x_2,f(x_2)) , .......,(x_n,f(x_n)) ) (x0,f(x0)),(x1,f(x1)),(x2,f(x2)),.......,(xn,f(xn)))
g[x]= ( x 0 , g ( x 0 ) ) , ( x 1 , g ( x 1 ) ) , ( x 2 , g ( x 2 ) ) , . . . . . . . , ( x n , g ( x n ) ) ) (x_0,g(x_0)),(x_1,g(x_1)) ,(x_2,g(x_2)) , .......,(x_n,g(x_n)) ) (x0,g(x0)),(x1,g(x1)),(x2,g(x2)),.......,(xn,g(xn)))
f[x]*g[x]= ( x 0 , f ( x 0 ) ∗ g ( x 0 ) ) , ( x 1 , f ( x 1 ) ∗ g ( x 1 ) ) , ( x 2 , f ( x 2 ) ∗ g ( x 2 ) ) , . . . . . . . , ( x n , f ( x n ) ∗ g ( x n ) ) ) (x_0,f(x_0)*g(x_0)),(x_1,f(x_1)*g(x_1)) ,(x_2,f(x_2)*g(x_2)) , .......,(x_n,f(x_n)*g(x_n)) ) (x0,f(x0)∗g(x0)),(x1,f(x1)∗g(x1)),(x2,f

本文深入浅出地介绍了FFT(快速傅里叶变换)算法的基本原理及其在多项式乘法中的应用,包括点值表示法、欧拉公式、单位根的概念,并详细解析了FFT的实现过程与逆变换。
 H. Needleand 和H.Rock Paper Scissors&spm=1001.2101.3001.5002&articleId=114890441&d=1&t=3&u=92d3faeef56a4bc2a184ca1c5a31e149)
2886

被折叠的 条评论
为什么被折叠?



