【模板】快速傅里叶变换FFT

这篇博客深入介绍了快速傅里叶变换(FFT)的概念,包括详细的公式介绍和原理讲解,适合初学者理解。同时,提供了两个基于FFT的多项式乘法问题的代码实现,分别是洛谷P3803和bzoj2179,帮助读者巩固理论知识并应用于实践。
摘要由CSDN通过智能技术生成

讲解:
快速傅里叶变换(FFT)详解
公式介绍比较详细。
FFT详解
原理讲解比较清晰。
建议两篇一起看一下。
如果只是在基础应用层面不去深究,FFT还是比较好懂的。


代码

#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#define db double
using namespace std;
const int N=5e6+10;
const db pi=acos(-1);
int n,m,l,bin[N];

//誓死不用STL,手打Complex
struct Complex{db real,imag;}a[N],b[N];
typedef Complex cc;
cc operator *(cc x,cc y)
{
  return (cc){x.real*y.real-x.imag*y.imag,x.real*y.imag+x.imag*y.real};}
cc operator -(cc x,cc y)
{
  return (cc){x.real-y.real,x.imag-y.imag};}
cc operator +(cc x,cc y)
{
  return (cc){x.real+y.real,x.imag+y.imag};}
inline void swa(cc &x,cc &y){cc t=x;x=y;y=t;}

inline void FFT(cc *C,int sta)
{
    for(int i=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值