fork download
  1. #include <iostream>
  2. #include<complex>
  3. #include<math.h>
  4. using namespace std;
  5.  
  6. int main() {
  7. int n;
  8. const double PI=3.14;
  9. cin>>n;
  10. double sign[n];
  11. complex<double> dft[n];
  12. for(int i=0;i<n;i++)
  13. {
  14. cin>>sign[i];
  15. }
  16. complex<double> mat[n][n];
  17. cout<<"Kernel"<<endl;
  18. for(int i=0;i<n;i++)
  19. {
  20. for(int j=0;j<n;j++)
  21. {
  22. mat[i][j]= complex<double> ((cos(2*PI*i*j/n)*10000/10000),-1*(sin(2*PI*i*j/n)*10000/10000));
  23. cout<<mat[i][j].real();
  24. cout<<"+j";
  25. cout<<mat[i][j].imag()<<" ";
  26. }
  27. cout<<endl;
  28. }
  29. for(int i=0;i<n;i++)
  30. {
  31. for(int k=0;k<n;k++)
  32. dft[i]+=complex<double>(mat[i][k].real()*sign[k],mat[i][k].imag()*sign[k]);
  33. }
  34. cout<<"DFT \n";
  35. for(int i=0;i<n;i++){
  36. cout<<dft[i].real();
  37. cout<<"+j";
  38. cout<<dft[i].imag()<<"\n";
  39. }
  40. return 0;
  41. }
Success #stdin #stdout 0s 3476KB
stdin
8
1
2
3
4
5
6
7
8
stdout
Kernel
1+j-0 1+j-0 1+j-0 1+j-0 1+j-0 1+j-0 1+j-0 1+j-0 
1+j-0 0.707388+j-0.706825 0.000796327+j-1 -0.706262+j-0.707951 -0.999999+j-0.00159265 -0.708513+j0.705698 -0.00238898+j0.999997 0.705133+j0.709075 
1+j-0 0.000796327+j-1 -0.999999+j-0.00159265 -0.00238898+j0.999997 0.999995+j0.0031853 0.00398162+j-0.999992 -0.999989+j-0.00477794 -0.00557426+j0.999984 
1+j-0 -0.706262+j-0.707951 -0.00238898+j0.999997 0.709636+j-0.704568 -0.999989+j-0.00477794 0.702871+j0.711317 0.00716688+j-0.999974 -0.712994+j0.70117 
1+j-0 -0.999999+j-0.00159265 0.999995+j0.0031853 -0.999989+j-0.00477794 0.99998+j0.00637057 -0.999968+j-0.00796318 0.999954+j0.00955578 -0.999938+j-0.0111483 
1+j-0 -0.708513+j0.705698 0.00398162+j-0.999992 0.702871+j0.711317 -0.999968+j-0.00796318 0.71411+j-0.700033 -0.0119446+j0.999929 -0.697184+j-0.716892 
1+j-0 -0.00238898+j0.999997 -0.999989+j-0.00477794 0.00716688+j-0.999974 0.999954+j0.00955578 -0.0119446+j0.999929 -0.999897+j-0.0143334 0.0167221+j-0.99986 
1+j-0 0.705133+j0.709075 -0.00557426+j0.999984 -0.712994+j0.70117 -0.999938+j-0.0111483 -0.697184+j-0.716892 0.0167221+j-0.99986 0.720767+j-0.693177 
DFT 
36+j0
-4.03461+j9.65335
-4.02861+j3.97762
-4.01765+j1.61937
-3.9997+j-0.0509637
-3.96986+j-1.71896
-3.91348+j-4.0661
-3.75804+j-9.67875