Я новичок в C ++ и мне нужна небольшая помощь. Я должен подготовить решение, которое умножает 2 полинома двумя способами. Я уже сделал самый простой способ, умножив его на собственный метод, и нашел несколько примеров FFT, созданных с использованием C ++. Все эти примеры используют <complex>
. Я надеюсь, что некоторые из вас могут помочь мне или даже посоветовать, как мне внедрить FFT в мой код?
Вот как я определяю свой полином
struct polynomial
{
double a;
};
Это функция, которую я сделал, чтобы сделать 2 полинома одинаковой степени, заполнив один из них нулями. Есть 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 кода, которые можно использовать для реализации БПФ, но оба включают, и я не знаю, как я могу использовать его в своем коде.
https://ideone.com/tbHUN7
https://ideone.com/MLkvHK