計算兩個一維陣列的卷積
阿新 • • 發佈:2019-01-25
a[m]和b[n]分別為兩個一維陣列,c[m+n-1]是卷積陣列。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <vector> #include <queue> #include <map> #include <algorithm> using namespace std; #define INF 0xfffffff #define maxn 100010 int main() { int m=5,n=5; int a[5]= {0,1,0,2,1},b[5]= {0,1,0,2,1}; int i,j; int k=m+n-1;//卷積後陣列長度 int c[k]; memset(c,0,sizeof(c));//注意一定要清零 /**卷積計算**/ for(i=0; i<k; i++) { for(j=max(0,i+1-n); j<=min(i,m-1); j++) c[i]+=a[j]*b[i-j]; cout<<c[i]<<" "; } /****/ cout<<endl; }