Terapkan Discrete Fourier Transform (DFT) untuk urutan berapa pun panjangnya. Ini dapat diimplementasikan sebagai fungsi atau program dan urutannya dapat diberikan sebagai argumen atau menggunakan input standar.
Algoritma akan menghitung hasil berdasarkan DFT standar di arah maju. Urutan input memiliki panjang Ndan terdiri dari [x(0), x(1), ..., x(N-1)]. Urutan output akan memiliki panjang yang sama dan terdiri dari di [X(0), X(1), ..., X(N-1)]mana masing X(k)- masing didefinisikan oleh hubungan di bawah ini.
Aturan
- Ini adalah kode-golf sehingga solusi terpendek menang.
- Builtin yang menghitung DFT dalam arah maju atau mundur (juga dikenal sebagai terbalik) tidak diperbolehkan.
- Ketidaktepatan titik-mengambang tidak akan dihitung terhadap Anda.
Uji Kasus
DFT([1, 1, 1, 1]) = [4, 0, 0, 0]
DFT([1, 0, 2, 0, 3, 0, 4, 0]) = [10, -2+2j, -2, -2-2j, 10, -2+2j, -2, -2-2j]
DFT([1, 2, 3, 4, 5]) = [15, -2.5+3.44j, -2.5+0.81j, -2.5-0.81j, -2.5-3.44j]
DFT([5-3.28571j, -0.816474-0.837162j, 0.523306-0.303902j, 0.806172-3.69346j, -4.41953+2.59494j, -0.360252+2.59411j, 1.26678+2.93119j] = [2, -3j, 5, -7j, 11, -13j, 17]
Tolong
Ada tantangan sebelumnya untuk menemukan DFT menggunakan algoritma FFT untuk urutan dengan panjang yang sama dengan kekuatan 2. Anda mungkin menemukan beberapa trik di sana yang mungkin membantu Anda di sini. Ingatlah bahwa tantangan ini tidak membatasi Anda pada kerumitan apa pun dan juga mengharuskan solusi Anda bekerja untuk urutan berapa pun panjangnya.

