FFT---(递归版和迭代版)( H. Needleand 和H.Rock Paper Scissors)

本文深入浅出地介绍了FFT(快速傅里叶变换)算法的基本原理及其在多项式乘法中的应用,包括点值表示法、欧拉公式、单位根的概念,并详细解析了FFT的实现过程与逆变换。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

axtices

谢谢您的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值