考虑给定多项式 f f f,如何求 f ( x 1 ) , f ( x 2 ) , f ( x 3 ) , . . . , f ( x n ) f(x_1),f(x_2),f(x_3),...,f_(x_n) f(x1),f(x2),f(x3),...,f(xn)。
构造 g = ∏ i = 1 n 2 ( x − x i ) , h = ∏ i = n 2 + 1 n ( x − x i ) g=\prod\limits_{i=1}^{\frac{n}{2}}(x-x_i),h=\prod\limits_{i=\frac{n}{2}+1}^n(x-x_i) g=i=1∏2n(x−xi),h=i=2n+1∏n(x−xi),然后显然 f ( x i ) = ( f % g ) ( x i ) ( i ≤ n 2 ) f(x_i)=(f\% g)(x_i)(i\le \frac{n}{2}) f(xi)=(f%g)(xi)(i≤2n),另一边同理。
然后就变成两个子问题了,时间复杂度 T ( n ) = O ( n log n ) + 2 ∗ T ( n / 2 ) = O ( n log 2 n ) T(n) = O(n\log n) +2*T(n/2)=O(n \log^2 n) T(n)=O(nlogn)+2∗T(n/2)=O(nlog2n)。
考虑给定 n n n个点值 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) (x_1,y_1),(x_2,y_2),...,(x_n,y_n) (x1,y1),(x2,y2),...,(xn,y