如何在编程中表示sqrt(-1)?

dat*_*ili 6 c++ math

我想sqrt(-1)用C++ 表示,因为我正在尝试实现FFT算法.有代表这种方式的好方法吗?

Fle*_*exo 18

我想你正在寻找#include <complex>例如:

std::complex<double> num(0,1);
Run Code Online (Sandbox Code Playgroud)

您实际上可以使用std::sqrtcomplex类型来计算sqrt(-1):

#include <complex>
#include <iostream>

int main() {
  const std::complex<double> result = std::sqrt(std::complex<double>(-1,0));
  std::cout << result << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

对于wn=exp((2*pi*i)/n)你可以这样做:

const double pi = std::acos(-1.0);
const std::complex<double> i(0,1);

std::complex<double> wn = std::exp((2*pi*i)/double(n));
Run Code Online (Sandbox Code Playgroud)

  • @ user466534:`wn`应该是`std :: complex <double>`,而不是`double`. (2认同)