Mn_Zn求助
查看原帖
Mn_Zn求助
230804
Durancer楼主2021/2/28 11:24

刚学FFT,对它还是不够理解,自己调了好久之后还是不过,但看到第一篇题解里在FFT中加上了下面这个处理就过了就很疑惑

if(type==-1) 
	for(int i=0;i<lim;++i) 
		A[i].x/=lim;

这是一开始的FFT代码

void FFT(Complex *A,int type)
{
	for(int i=0;i<lim;i++)
		if(i<r[i]) swap(A[i],A[r[i]]);
	for(int mid=1;mid<lim;mid<<=1)
	{
		Complex Wn(cos(Pi/mid),type*sin(Pi/mid));
		for(int R=mid<<1,j=0;j<lim;j+=R)
		{
			Complex w(1,0);
			for(int k=0;k<mid;k++,w=w*Wn)
			{
				Complex x=A[j+k];
				Complex y=w*A[j+k+mid];
				A[j+k]=x+y;
				A[j+k+mid]=x-y; 
			}
		}
	}
}

求大佬解释qwq

2021/2/28 11:24
加载中...