Herhangi bir uzunlukta bir dizi için Ayrık Fourier Dönüşümü (DFT) uygulayın. Bu bir işlev veya program olarak uygulanabilir ve dizi bağımsız değişken olarak veya standart girdi kullanılarak verilebilir.
Algoritma, ileri yönde standart DFT'ye dayalı bir sonuç hesaplayacaktır. Giriş dizisi uzunluğa sahiptir Nve oluşur [x(0), x(1), ..., x(N-1)]. Çıktı sekansı aynı uzunluğa sahip olacak ve [X(0), X(1), ..., X(N-1)]her birinin X(k)aşağıdaki ilişki ile tanımlandığı yerden oluşacaktır .
kurallar
- Bu kod golf böylece en kısa çözüm kazanır.
- DFT'yi ileri veya geri (ters olarak da bilinir) yönde hesaplayan yapılara izin verilmez.
- Kayan nokta yanlışlıkları size karşı sayılmaz.
Test Durumları
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]
Yardım
2 gücüne eşit diziler için bir FFT algoritması kullanarak DFT bulmak için daha önce bir zorluk vardı. Burada size yardımcı olabilecek bazı hileler bulabilirsiniz. Bu zorluğun sizi herhangi bir karmaşıklıkla sınırlamadığını ve ayrıca çözümünüzün herhangi bir uzunlukta diziler için çalışmasını gerektirdiğini unutmayın.

