我知道以下推理有問題,但我不確定它是什麼。FFT中的說明
的FFT:
給出兩個多項式
A = a_0 + a_1 x + a_2 x^2 + ... + a_n x^n
和
B = b_0 + b_1 x + b_2 x^2 + ... + b_n x^n
就可以計算產品的係數
AB = \sum _k = 0^2n (\sum _ j = 0^k (a_j b_{k-j}))x^k
在
O(n log n)
時間。所以給出兩個向量
(a_0, ..., a_n)
和(b_0, ..., b_n)
我們可以O(n log n)
時間計算 矢量v_i = \sum j = 0^k (a_j b_{k-j})
(由零嵌入載體。)鑑於上述情況,我們應該能夠計算的點積
A =(a_0, ..., a_n)
和B =(b_0, ..., b_n)
這是A.B = \sum_j=0^n a_j b_j
在O(n log n)
時間通過預處理其中一個向量說B
爲B' = (b_n, b_{n-1}, ..., b_1, b_0)
然後計算卷積如在O(n log n)
時間在2。
如果上述推理是正確的,那麼這意味着我們可以通過在O(n log n)
時間O(n)
倍計算點積在O(n^2 log n)
時間實現兩個nxn
矩陣的矩陣乘法。
但是,我們知道矩陣乘法的最佳運行時間大約是O(n^2.4)
,所以這似乎不太可能是真實的,這可能意味着步驟1,2或3的不正確。
步驟(3)從B轉換到B'的運行時間是多少? – 2009-11-12 19:20:23