我一直在算法教科书中研究这个话题。如何使用FFT实际实现多项式乘法?
统一的复杂根源的巧妙使用似乎是数学上的工作。但是,我不明白如何在电脑中实际表示这一点。
我能想到的两件事情:
- 使用实/虚分解来表示复数。但是这意味着使用浮点数,这意味着我打开我的算法数值误差,即使我想用整数系数乘以两个多项式,我也会失去精度。
- 将exp(i 2pi/n)表示为n。所以,我最终会得到一个欧米茄中的元组,如果我必须保持这种形式,我基本上会在欧米茄中进行多项式乘法运算,并将我们带回原点。
我真的很希望看到用熟悉的编程语言实现这个算法。
“C中的数字食谱”在其所有的荣耀中都有FFT实现。 NumPy/SciPy将拥有Python版本。有Java开源库。找到您认识的语言并下载源代码。 – duffymo
也许https://math.stackexchange.com/questions/764727/concrete-fft-polynomial-multiplication-example? –