我是C ++的新手,我需要一些帮助。我必须准备将2个多项式以2种方式相乘的解决方案。我已经做了最简单的方法,与本机方法相乘,并且发现了一些使用C ++制作的FFT示例。所有这些示例都使用<complex>
。我希望你们中的一些人能对我有所帮助,甚至建议我应该如何在代码中实现FFT?
这就是我定义多项式的方式
struct polynomial
{
double a;
};
该函数使我以相同的程度制作两个多项式,并用零填充其中一个。我尝试解决2种方法,但没有一种能够正常运行。
void fill_zeros(polynomial *A, polynomial *B, int d1, int d2)
{
if (d1> d2)
{
polynomial *x = new polynomial[d1];
for (int i = 0; i <= d1; i++)
{
if (i > d2)
x[i].a = 0.0;
else
x[i].a = B[i].a;
}
delete[] B;
polynomial *B= new polynomial[d1];
for (int i = 0; i <= d1; i++)
B[i].a = x[i].a;
delete[] x;
}
else if (d2> d1)
{
polynomial *A= new polynomial[d2];
for (int i = d1; i <= d2; i++)
{
A[i].a = 0.0;
}
}
else
{
cout << "\nPolynomials are equal" << endl;
}
}
我发现了2个可用于实现FFT的代码,但都包含了两个代码,我也不知道如何在我的代码中使用它。