假设我们要计算多项式 f(x) = x^3 + 2x^2 + x + 3 在模数为 5 的情况下的NTT,模数为 p = 5。首先,我们需要将多项式系数表示为模 p 的剩余系。
f(x) = x^3 + 2x^2 + x + 3 ≡ x^3 + 2x^2 + x - 2 (mod 5)
接下来,我们需要选择 NTT 中使用的根。对于模数 p = 5,有两个原根,分别是 2 和 3。我们选择 3 作为根。
第一步是将多项式补零扩展到长度为 4。我们的多项式已经是 4 次的,因此我们不需要做任何事情。
f(x) = x^3 + 2x^2 + x - 2
第二步是计算 W_4^1, W_4^2, W_4^3,其中 W_4^k = 3^k mod 5。
W_4^1 = 3^1 mod 5 = 3
W_4^2 = 3^2 mod 5 = 4
W_4^3 = 3^3 mod 5 = 2
第三步是计算多项式在 W_4^1, W_4^2, W_4^3 处的取值。我们首先计算多项式在 W_4^1 处的取值:
f(W_4^1) = (33)1 + 2(32)1 + 3^1 - 2 = 3 + 2(4) + 3 - 2 = 10 ≡ 0 (mod 5)
然后我们计算多项式在 W_4^2 处的取值:
f(W_4^2) = (33)2 + 2(32)2 + 3^2 - 2 = 27 + 2(16) + 9 - 2 = 66 ≡ 1 (mod 5)
最后,我们计算多项式在 W_4^3