快速傅利葉變換 FFT

2021-07-10 14:13:45 字數 825 閱讀 3565

bzoj

2179: fft快速傅利葉 果題

bzoj2194:請計算c[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,並且有 n < = 10 ^ 5。 a,b中的元素均為小於等於100的非負整數。

注意到i 和 i - k有奇妙的聯絡

不妨嘗試把b翻轉

然後就變成卷積了。。

貼個模板

#include 

#define maxn 500010

using namespace std;

struct cpx

cpx operator+(const cpx& k)const

cpx operator-(const cpx& k)const

cpx operator*(const cpx& k)const

cpx operator/(const double& n)const

}a[maxn], b[maxn], p[maxn];

int n, l, k, a[maxn], b[maxn], c[maxn], r[maxn];

int rev(int a)

return ret;

}void init()

const double pi = 3.1415926535;

void fft(cpx a, int n, int t)

} }if(t == -1)for(int i = 0; i < n; i ++)a[i] = a[i] / n;

}int main()

return 0;

}

快速傅利葉變換FFT

fft的作用就不多說了,搞訊號處理的人都會用上。fft的由來 傅利葉變換ft 離散傅利葉變換dft 快速傅利葉變換fft。學習資料 1 陳後金的 數字訊號處理 裡面深入淺出,該有的公式都有,程式設計思想也有。2 一篇系統講述傅利葉變換的帖子 3 學生對fft的理解 4 工程人員對fft的簡單明瞭的總...

快速傅利葉變換 FFT

首先說一下我用fft做什麼,我要做的是多項式乘法,或者說,加速多項式乘法。考慮多項式a x j 0n 1aj xj,它一共有 n 項,我們稱它的次數界為 n。假設我們有兩個次數界為 n 的多項式a x 和b x 要求它們的和是非常簡單的,只需要將對應的係數相加,複雜度為o n 如果要求他們的積,則需...

FFT(快速傅利葉變換)

大佬部落格 hdu 4609 題意 給定乙個陣列,問從其中選3個值能構成三角形的概率是多少。思路 先求出選兩個之和的情況,然後列舉選取的最長邊,根據三角形的三邊定理來求解。選兩個之和的情況及是,先將長度相同的統計起來,然後求這個陣列的卷積,其值就是和為i的有多少個,也就是 中的num陣列。這裡解釋一...