对任意长度的序列实施离散傅立叶变换(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 一直是一个挑战。请记住,这一挑战不会限制您任何复杂性,还需要您的解决方案才能适用于任何长度的序列。

