首頁 從大學講師到首席院士

第五十四章 你的論文是最佳!

八十年以前,已知的乘法運算方式隻有一種,就是在課本上所學到的常規豎式計算方法。

當進行位數少的數字相乘時,豎式計算方法是非常快捷、方便的,但若是計算數百萬位數或數十億位數的乘數之間的相乘時,豎式計算方法就顯得無能為力了,例如,計算圓周率或者尋找更大的質數。

後來出現了‘Karatsuba算法’,將數字的乘數分解成更小的部分,並重新組合這些部分,這種方式可以用少量的加法和減法來代替大量的乘法。

這一算法完成兩個n位數的乘法計算,隻需要‘n的1.58次方’次個位數的相乘,而不是之前的‘n的平方’次。

後來又有兩位科學家一起,利用‘引入快速傅立葉變換’的方式,來對大數相乘算法進行改進,隻需要‘n×log n×log(log n)’次個位數的相乘,就可以完成大數相乘計算,其中log n是n的對數。

這一改進是跨越式的創新,後續大數相乘算法的持續改善,都是以這種方法為基礎進行。

王浩的研究成果也同樣是以‘引入快速傅立葉變換’的方式進行,才會用‘是改善、也是創新’來形容自己的成果,他的講解也是從‘傅立葉變換算法’開始的。

以‘傅裏葉變換算法’展開,輔助其他的計算手段,構建出一個包含‘結果’數字區域。

這就是創新的地方。

他的研究並不是正常進行一步步的計算,而是劃定了‘可能成為結果的數值集合’,比如,25*25,就可以簡單劃定結果在400到900的區間,通過一些必要的篩選,比如‘尾數是5’,把集合裏麵的數字一個個劃去,直到最後隻剩下一個數字,就確定為最終結果。

當然,超大數相乘要複雜的多,引入‘快速傅裏葉變換’並輔助其他計算方法,劃定的範圍會更加精準。

如果是計算‘25乘25’,可以直接圈定範圍就是在‘725、625、525’三個數字之間,而後可以迅速排除725和525,最終得到結果625。