乘法运算-快速傅里叶变换
貌似一種新的乘法快速計算方法已經(jīng)提交論文,理論上可以達到大數(shù)乘法的效率極限。
文章鏈接:多項式乘法到快速傅里葉變換;此文介紹的非常詳細,極力推薦。
文章鏈接:使用快速傅里葉變換計算大整數(shù)乘法;快速傅里葉變換,使用算法設(shè)計思想中的分治法,降低傅里葉變換的時間復(fù)雜度到 O(N logN)。
傅里葉變換,算法的時間復(fù)雜度還是 O(N2)。關(guān)鍵在于:直接進行離散傅里葉變換的計算復(fù)雜度是 O(N2)。快速傅里葉變換可以計算出與直接計算相同的結(jié)果,但只需要 O(N logN) 的計算復(fù)雜度。 N logN 和 N2 之間的差別是巨大的。例如,當(dāng) N = 106 時,在一個每秒運算百萬次的計算機上,粗略地說,它們之間就是占用 30 秒 CPU 時間和兩星期 CPU 時間的差別。
快速傅里葉變換的要點如下:一個界長為 N 的離散傅里葉變換可以重新寫成兩個界長各為 N/2 的離散傅里葉變換之和。其中一個變換由原來 N 個點中的偶數(shù)點構(gòu)成,另一個變換由奇數(shù)點構(gòu)成。這個過程可以遞歸地進行下去,直到我們將全部數(shù)據(jù)細分為界長為 1 的變換。
什么是界長為 1 的傅里葉變換呢?它正是把一個輸入值復(fù)制成它的一個輸出值的恒等運算。要實現(xiàn)以上算法,最容易的情況是原始的 N 為 2 的整冪次項,如果數(shù)據(jù)集的界長不是 2 的冪次時,則可添上一些零值,直到 2 的下一冪次。在這個算法中,每遞歸一次需 N 階運算,共需要 log N 次遞歸,所以快速傅里葉變換算法的時間復(fù)雜度是 O(N logN)。
?
?
總結(jié)
以上是生活随笔為你收集整理的乘法运算-快速傅里叶变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 紫菜饭团的做法
- 下一篇: 三维重建6:绑架问题/SensorFus