数论变换是用来干什么的?
数论变换是用来快速高效地计算系数为 Z q Z_q Zq多项式环乘法运算结果的一个算法。
多项式定义
f ( x ) = ∑ i = 0 n a i x i f(x)=\sum_{i=0}^{n}a_ix^i f(x)=∑i=0naixi
- 多项式的根: f ( x 0 ) = 0 f(x_0)=0 f(x0)=0, x 0 x_0 x0为多项式的根
- 若 a n ≠ 0 , d e g ( f ) = n a_n \neq 0, deg(f) =n an=0,deg(f)=n
多项式乘法
f ( x ) = ∑ i = 0 n a i x i f(x)=\sum_{i=0}^{n}a_ix^i f(x)=∑i=0naixi g ( x ) = ∑ j = 0 n a j y j g(x)=\sum_{j=0}^{n}a_jy^j g(x)=∑j=0najyj
f ( x ) ⋅ g ( x ) = ∑ i = 0 n + m C t x t f(x)\cdot g(x)=\sum_{i=0}^{n+m}C_tx^t f(x)⋅g(x)=∑i=0n+mCtxt
其中 C t = ∑ i + j = t a i b j C_t=\sum_{i+j=t}a_ib_j Ct=∑i+j=taibj
并且满足 d e g ( f ) > = d e g ( g ) , f ( x ) ≠ 0 deg(f)>=deg(g), f(x)\neq0 deg(f)>=deg(g),f(x)=0
多项式 f f f和 g g g的乘积 h h h称为 f f f和 g g g的折叠卷积
群的定义
带有二元运算的集合G(以下默认集合非空)
满足以下条件:
1、结合律
2、存在零元
3、有可逆元
Abel群
在以上定义的基础上还满足交换律
a + b = b + a a+b=b+a a+b=b+a
环的定义
对集合 R R R,现在有两种运算, + + +和 ⋅ \cdot ⋅,满足
1、在 + + +(加法)下成Abel群
2、 a ⋅ ( b ⋅ c ) = ( a ⋅ b ) ⋅ c a \cdot (b \cdot c)=(a \cdot b) \cdot c a⋅(b⋅c)=(a⋅b)⋅c(结合律)
3、 ( a + b ) ⋅ c = a c + b c (a+b)\cdot c = ac + bc (a+b)⋅c=ac+bc(分配率)
则称集合 R R R为环
多项式环、多项式商环
多项式环就是多项式系数在环上。多项式商环就是多项式环模了一个多项式
多项式商环下的乘法
现在存在一个多项式环 Z q [ x ] / ( x n + 1 ) , n = 2 m \mathbb{Z}_{q}[x]/(x^n+1),n=2^m Zq[x]/(xn+1),n=2m( n n n是2的某次幂), q q q是素数,并且满足 2 n ∣ ( q − 1 ) 2n|(q-1) 2n∣(q−1)
其中 f , g f,g f,g都是是属于多项式环的,需要计算多项式环 f , g f,g f,g的乘积:
f , g ∈ Z q / ( x n + 1 ) h = f ⋅ g ∈ Z q / ( x n + 1 ) f = ( f 0 , f 1 , f 2 , . . . , f n − 1 ) g = ( g 0 , g 1 , g 2 , . . . , g n − 1 ) f,g \in \mathbb{Z}_{q} /( x^n +1) \\ h=f\cdot g \in \mathbb{Z}_{q}/(x^n+1) \\ f=(f_0,f_1,f_2,...,f_{n-1}) \\ g=(g_0,g_1,g_2,...,g_{n-1}) \\ f,g∈Zq/(xn+1)h=f⋅g∈Zq/(xn+1)f=(f0,f1,f2,...,fn−1)g=(g0,g1

本文详细介绍了数论变换在快速计算多项式乘法中的应用,特别是NTT(数论变换)如何等效于负折叠卷积的傅里叶变换。通过NTT,可以高效地处理多项式环模运算,特别是在有限域$mathbb{Z}
最低0.47元/天 解锁文章
3万+





