我们实现NTT时,总是在 整数模质数 p=2kq+1 域上进行的。原因很简单:为了在 Z/pZ 上使用原根以套用复数域 C 上“单位根”的概念,其阶必然也应当是 2k 的倍数才行。这就为我们带来了很多不便。假如现在给定一质数 p’ 且不保证有 p’=2kq+1,我们就需要另辟蹊径完成卷积。
实现一:中国剩余定理
中国剩余定理:若数 n 的质因数分解为 ∑i=1kpiei,有整数模 n 加法群(或者环,随便你怎么叫吧)
Z/nZ≅Z/p1e1Z×Z/p2e2Z×⋯×Z/pkekZ
或者通俗地讲,若 m1,m2,⋯,mk 两两互质,则线性同余方程组
⎩⎨⎧xxx≡x1(modm1)≡x2(modm2)⋮≡xk(modmk)
在 mod∏i=1kmi 意义下有唯一解。 (更多…)
More