0

我一直在研究使用 NTT (FFT) 将多项式相乘的代码,我做了 2 种不同的实现,并使用现有的实现来验证,例如:https ://www.nayuki.io/page/number-theoretic-transform -integer-dfthttps://github.com/iblue/ntt

问题是所有结果似乎都向左移动一次(乘以 x),如下所示:

0 0 1 1 (x + 1)
*
0 0 1 1 (x + 1)
=
1 2 1 0 (1x^3 + 2x^2 + x) // Should be 0 1 2 1

此外,平凡的案例 1*1 也是错误的:

0 0 0 1 (1)
*
0 0 0 1 (1)
=
0 0 1 0 (x) // Should be 0 0 0 1 (1)

我不知道为什么会发生这种情况,到目前为止我读过的任何文章都没有提到它。

我错过了什么?

4

0 回答 0