以下代码的目的是将多项式从系数表示转换为值表示,方法是将其除以奇数和偶数幂,然后在较小的多项式上递归。
function FFT(A, w)
Input: Coefficient representation of a polynomials A(x) of degree ≤ n-1, where n
is a power of 2w, an nth root of unity.
Output: Value representation A(w^0),...,A(w^(n-1))
if w = 1; return A(1)
express A(x) in the form A_e(x^2) and xA_o(x^2) /*where A_e are the even powers and A_o
the odd.*/
call FFT(A_e,w^2) to evaluate A_e at even of powers of w
call FFT(A_o,w^2) to evaluate A_o at even powers of w
for j = 0 to n-1;
compute A(w^j) = A_e(w^(2j))+w^j(A_o(w^(2j)))
return A(w^0),...,A(w^(n-1))
用于for循环的是什么?
为什么伪代码只添加较小的多项式,是否也需要减去它们? (计算A(-x))。这不是算法完全基于什么?添加和减去较小的多项式以将这些点减少一半?*
为什么“w”的权力被评估而不是“x”?
我不太确定这是否属于这里,因为这个问题非常数学化。如果你认为这个问题不合时宜,我会很感激,如果你把它移到一个你认为这个问题更合适的网站上,而不是关闭它。
* Psuedocode是由S. Dasgupta从 Algorithms 获得的。第71页。
答案 0 :(得分:0)