NTT

NTT

NTT是一种跑得比FFT快的东西(?)。

元素的幂

考虑有限群G,\(a \in G\)。元素的幂就是a的几次方。

使得\(a^d=e\)的最小正整数d称为a的阶,记作\(d=ord(a)\)

显然,a的幂生成的集合S是G的子群。因此,\(a^{|G|}=e\)

原根

有个结论:\(Z_n^*\)存在原根\(\Leftrightarrow\)\(n=2,4,p^\alpha,2p^\alpha\),p为奇素数。

tip:469762049,998244353和1004535809都有原根3。

设对于n,我们找到了原根g。设\(g_n=g^{\frac{p-1}{n}}\)。那么:

  • \(g_n=g^{\frac{p-1}{n}}\)
  • \(g^n_n=g^{p-1}=1\)
  • \(g_{dn}^{dk}=(g^\frac{p-1}{dn})^{dk}=(g^{\frac{p-1}{n}})^k=g_n^k\)(消去引理)
  • \((g_n^k)^2=(g_n^{k+n/2})^2=(g^\frac{p-1}{n/2})^k=g_{n/2}^k\)(折半引理)

  • 求和引理:\(\sum_{i=0}^{n-1}(g_n^k)^i =\left\{ \begin{align} n,n\mid k \\ 0,n \nmid k \end{align} \right.\), 可以用类似fft的方法证。

然后我们就可以用原根愉快的做fft了。

任意模数ntt

猜你喜欢

转载自www.cnblogs.com/MyNameIsPc/p/9592422.html
NTT