这是一篇基于OI Wiki中的内容进行整理的算法竞赛中关于多项式的相关内容的第二篇笔记。
1.前置知识
1.1 阶
若正整数 a , p a,p a,p互质,且满足 p > 1 p>1 p>1,则对于 a n ≡ 1 ( m o d p ) a^n ≡ 1 \pmod p an≡1(modp)的 n n n,我们称这样的 n n n为 a a a模 p p p的阶,记作 δ p ( a ) \delta_p(a) δp(a)。
如: 2 2 2是 3 3 3模 8 8 8的阶,因为 3 3 3与 8 8 8互质,且 n = 2 n=2 n=2是最小的满足 3 n ≡ 1 ( m o d p ) 3^n ≡ 1\pmod p 3n≡1(modp)的值。
阶具有以下性质:
- 对于 i ∈ [ 0 , δ p ( a ) ) i∈[0,\delta_p(a)) i∈[0,δp(a)),所有的 a i ( m o d p ) a^i \pmod p ai(modp)结果互不相同。(可以用反证法证明)
- 若 a n ≡ 1 ( m o d p ) a^n≡1\pmod p an≡1(modp),则 δ p ( a ) ∣ n \delta_p(a) \vert n δp(a)∣n。( 3 2 ≡ 1 ( m o d 8 ) 3^2≡1\pmod 8 32≡1(mod8), 3 4 ≡ 1 ( m o d 8 ) 3^4≡1\pmod 8 34≡1(mod8))
- 若 p p p为质数,则 δ p ( g i ) = δ p ( g ) \delta_p(g^i)=\delta_p(g) δp(gi)=δp(g)的充要条件为 gcd ( δ p ( g ) , i ) = 1 \gcd(\delta_p(g),i)=1 gcd(δp(g),i)=1,其中 g g g为任意的正整数。
- δ p ( a b ) = δ p ( a ) gcd ( b , δ p ( a ) ) \delta_p(a^b)=\frac{\delta_p(a)}{\gcd(b,\delta_p(a))}

这篇笔记介绍了多项式相关的算法竞赛知识,包括模数的阶、剩余类、原根的概念及其性质。特别地,讨论了快速数论变换(NTT)在模数为质数时的应用,作为解决带模数的多项式乘法的有效方法,并给出了NTT的实现代码。同时,对比了快速傅里叶变换(FFT)和NTT在效率上的差异。
最低0.47元/天 解锁文章
595

被折叠的 条评论
为什么被折叠?



