Изменения
Нет описания правки
{{Определение
|definition=
'''Дискретное преобразование Фурье''' (англ. ''Discrete Fourier Transform (, DFT)'') {{---}} многочлена <tex>A(x)</tex> называют вектор значений этого многочлена в точках <tex>x = \omega_{n,k}</tex>:
<tex>
{{Определение
|definition=
'''Обратное дискретное преобразование Фурье''' (англ. ''Inverse DFT'') для вектора значений многочлена <tex>A(\omega_n)</tex> <tex>(y_0, y_1, \ldots , y_{n-1})</tex> {{---}} это вектор коэффициентов этого многочлена <tex>(a_0, a_1, \ldots , a_{n-1})</tex>:
<center>
<tex>
\mathrm{InvDFT}(y_0, y_1, \ldots , y_{n-1}) = (a_0, a_1, \ldots , a_{n-1}).
</tex>
</center>
<center>
<tex>
A \times B = \mathrm{InvDFT}(\mathrm{DFT}(A) \times \mathrm{DTF}(B)).
</tex>
</center>
Так как ДПФ многолчена {{---}} это вектор его значений, значит, перемножение двух ДПФ требует только <tex>O(n)</tex> операций. Осталось только вычислять ДПФ и обратное ДПФ за время <tex>O(nnlogn)</tex>. Для этого используем [[Быстрое преобразование Фурье| быстрое преобразование Фурье]].
== ДПФ в модульной арифметике ==
== Следствия ==
{{Утверждение
|statement= <tex>\mathrm{DFT}(\mathrm{DFT}(a_0, a_1, \ldots , a_{n-1})) = \dfrac{1}{n} (a_0, a_{n-1}, \ldots , a_1) </tex>|proof= '''Доказательство:'''
Применим к обеим частям обратное ДПФ и получим:
<center>
<tex>
\mathrm{DFT}(a_0, a_1, a_{n-1}) = \mathrm{InvDFT}(\dfrac{1}{n} (a_0, a_{n-1}, \ldots , a_1))
</tex>
</center>
== Пример ==
Посчитаем <tex>\mathrm{DFT}</tex> для полинома степени <tex>n = 4</tex>.
<center>
*[[Быстрое преобразование Фурье]]
== Источники информации ==
*[https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%A4%D1%83%D1%80%D1%8C%D0%B5 Википедия {{---}} Дискретное преобразование Фурье]
*[http://e-maxx.ru/algo/fft_multiply MAXimal::algo::Быстрое преобразование Фурье за O (N log N)]
[[Категория: Дискретная математика и алгоритмыАналитическая теория чисел]]