Jaka jest złożoność (na standardowej całkowitej liczbie pamięci RAM) obliczania standardowej dyskretnej transformaty Fouriera wektora liczb całkowitych?
Klasyczny algorytm szybkich transformacji Fouriera , niewłaściwie [1] przypisany Cooleyowi i Tukeyowi, jest zwykle opisywany jako działający w czasie . Ale większość operacji arytmetycznych wykonywanych w tym algorytmie rozpoczyna się od złożonych pierwiastków jedności, które są (dla większości ) irracjonalne, więc dokładna ocena w stałym czasie nie jest rozsądna. Ten sam problem pojawia się w przypadku naiwnego algorytmu czasu (pomnożenie przez macierz Vandermonde'a złożonych pierwiastków jedności).
Nie jest nawet jasne, jak dokładnie reprezentować wynik DFT (w jakiejkolwiek przydatnej formie). Innymi słowy, nie jest jasne, czy obliczanie DFT jest rzeczywiście możliwe!
Więc załóżmy, musimy tylko bitów precyzji w każdej wartości wyjściowej. Jaka jest złożoność obliczania dyskretnej transformaty Fouriera w funkcji i ? (Dla konkretności możesz założyć, że jest potęgą ).
Czy może każdy przypadek „FFT” w literaturze oznacza „szybką transformację teoretyczną ”? [2]
Zobacz moje powiązane pytania dotyczące złożoności eliminacji Gaussa i najkrótszych ścieżek euklidesowych .
[1] Naprawdę należy go nazwać (jakimś przedrostkiem) algorytmem Gaussa-Runge-Königa-Yatesa-Stumpfa-Danielsona-Lánczosa-Cooleya-Tukeya.
[2] A jeśli tak, to dlaczego większość podręczników opisuje tylko algorytm liczb zespolonych?