NTT
\(\text{NTT}\) 为 \(\text{FFT}\) 在数论基础上的实现,最主要的区别就是把 \(\omega_n\) 换为 \(g^{\frac{p-1}{2^n}}\),其中 \(g\) 为原根,\(p\) 为模数,必须满足 \(2^n\mid (p-1)\)
常用 \(\text{NTT}\) 模数(表中 \(p=b2^n+1\)):
| \(p\) | \(b\) | \(n\) | \(g\) |
|---|---|---|---|
| \(167772161\) | \(5\) | \(25\) | \(3\) |
| \(469762049\) | \(7\) | \(26\) | \(3\) |
| \(754974721\) | \(3^2\times 5\) | \(24\) | \(11\) |
| \(998244353\) | \(7\times 17\) | \(23\) | \(3\) |
| \(1004535809\) | \(479\) | \(21\) | \(3\) |
除此外只要把复数运算替换为模运算即可,时间复杂度相同

浙公网安备 33010602011771号