NTT计算实例by ChatGPT

假设我们要计算多项式 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值