길이에 관계없이 이산 푸리에 변환 (DFT)을 구현하십시오. 이것은 함수 또는 프로그램으로 구현 될 수 있으며 시퀀스는 인수 또는 표준 입력을 사용하여 제공 될 수 있습니다.
알고리즘은 순방향의 표준 DFT를 기반으로 결과를 계산합니다. 입력 시퀀스는 길이를 N가지며로 구성됩니다 [x(0), x(1), ..., x(N-1)]. 출력 순서는 길이가 같 [X(0), X(1), ..., X(N-1)]으며 각각 X(k)아래의 관계에 의해 정의되는 위치 로 구성 됩니다.
규칙
- 이것은 코드 골프 가장 짧은 솔루션이 승리합니다.
- DFT를 정방향 또는 역방향 (역이라고도 함)으로 계산하는 내장은 허용되지 않습니다.
- 부동 소수점 부정확성은 계산되지 않습니다.
테스트 사례
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]
도움
이전 에는 2의 거듭 제곱과 같은 길이의 시퀀스에 대해 FFT 알고리즘을 사용하여 DFT를 찾는 데 어려움 이있었습니다 . 여기서 도움이 될만한 몇 가지 트릭을 찾을 수 있습니다. 이 과제로 인해 복잡성이 제한되는 것은 아니며 솔루션이 길이에 관계없이 작동해야합니다.

