选题:分解有限域 F 2 F_2 F2 上多项式 f ( x ) = x 9 + x 8 + x 7 + x 4 + x 3 + x + 1 f(x) = x^9 + x^8 + x^7 + x^4 + x^3 + x + 1 f(x)=x9+x8+x7+x4+x3+x+1
有限域
F
2
F_2
F2 上多项式的分解
摘要: 基于不同的数域进行多项式分解有不同的特性,而二元域是一个有着特殊意义的有限域,本文研究二元域下的多项式分解,根据已有方案提出一个可以解决选题的方法,并证明其正确性。
关键字: 数论 有限域 二元域 多项式分解
有限域在计算机领域是一个重要的概念,计算机的存储空间是有限的,因此运算也是基于有限的存储进行。而无限域中的计算难以直接应用于计算机,因此有限域的研究十分重要。另外一方面,多项式的因式分解问题是代数数学的一个基本问题,并且在编码理论中有大量的应用,因此有限域上的多项式也是一个重要的研究分支,比如扩域需要基于不可约多项式来构造,而扩域的运算也要基于多项式的加法和乘法规则进行。又比如拉格朗日插值法、泰勒展开等等一系列数学方法,都是基于多项式的方法,而在计算机上使用就有必要转化为有限域上的形式。在有限域上,多项式的运算要满足一些特殊的规则,从而使得其与无限域上的多项式有了不一样的特性。另外一方面,同样是无限域,实数域与复数域上的多项式也有不一样的特性,以多项式的分解为例,实数域上存在次数不为一不可约多项式,而复数域上则只有次数为一不可约多项式。在有限域中,二元域是一个有特殊意义的域,因为计算机的机器码就是0和1的形式,同时二元域上有一些有趣的特性,这也让二元域上的多项式分解有了不一样的特性。
1 相关研究
在文献[1]中提到了基于Miller-Rabin的素性检验的多项式分解,拓展素性检验到多项式上,是一种概率性算法。文献[2]中提到了有限域 F p F_p Fp 中形如 x n − 1 x^n-1 xn−1 的多项式的因式分解。当 n = d ( p − 1 ) , d ∣ ( p − 1 ) , d < p − 1 n=d(p-1),d|(p-1),d<p-1 n=d(p−1),d∣(p−1),d<p−1时, 可借助 F p F_p Fp 上的本原多项式,通过Dickson多项式解决多项式分解问题。文献[3]中进一步细致地研究了 F 2 F_2 F2 上多项式分解算法,将多项式分解问题转化为了棋盘游戏,通过建模研究了一个可分解任意二元域上多项式的算法。
2 预备知识
2.1 域的定义
定义 2.1.1 设
<
F
,
+
,
∗
>
<F,+,*>
<F,+,∗> 是一个带幺交换环,
F
∗
F^*
F∗ 表示
F
F
F 中所有的非零元素的集合,如果
<
F
∗
,
∗
>
<F^*,*>
<F∗,∗> 是一个交换群,则称
<
F
,
+
,
∗
>
<F,+,*>
<F,+,∗> 为域。
<
F
,
+
>
<F,+>
<F,+> 为域
<
F
,
+
,
∗
>
<F,+,*>
<F,+,∗> 的加法群,
<
F
∗
,
∗
>
<F^*,*>
<F∗,∗> 称为域
<
F
,
+
,
∗
>
<F,+,*>
<F,+,∗> 的乘法群。通常用
0
0
0 表示加法群的单位元,用 &1& 表示乘法群的单位元。
定义 2.1.2 只含有有限个元素的域称为有限域。有限域也称为Galois域。含有
q
q
q 个元素的有限域通常记为
F
q
F_q
Fq 或者 GF(q)。
2.2 域上的多项式
定义 2.2.1 设
p
(
x
)
∈
F
[
x
]
,
d
e
g
(
p
(
x
)
)
≥
1
p(x) \in F[x],deg(p(x)) \ge 1
p(x)∈F[x],deg(p(x))≥1。 如果
p
(
x
)
p(x)
p(x) 在
F
[
x
]
F[x]
F[x] 中只有因式
c
∈
F
c \in F
c∈F 和
c
⋅
p
(
x
)
∈
F
[
x
]
c \cdot p(x) \in F[x]
c⋅p(x)∈F[x],则称
p
(
x
)
p(x)
p(x) 为域
F
F
F 上的不可约多项式;否则,称
p
(
x
)
p(x)
p(x) 为域
F
F
F 上的可约多项式。
定义 2.2.2 设
f
(
x
)
,
g
(
x
)
f(x),g(x)
f(x),g(x) 是整环
R
R
R 上的任意两个多项式,其中
g
(
x
)
≠
0
g(x) \ne 0
g(x)=0,如果存在一个多项式
q
(
x
)
q(x)
q(x) 使得等式
f
(
x
)
=
q
(
x
)
⋅
g
(
x
)
f(x)=q(x) \cdot g(x)
f(x)=q(x)⋅g(x)
成立,就称
g
(
x
)
g(x)
g(x) 整除
f
(
x
)
f(x)
f(x) 或者
f
(
x
)
f(x)
f(x) 被
g
(
x
)
g(x)
g(x) 整除,记作
g
(
x
)
∣
f
(
x
)
g(x)|f(x)
g(x)∣f(x)。这时把
g
(
x
)
g(x)
g(x) 称作
f
(
x
)
f(x)
f(x) 的因式,
f
(
x
)
f(x)
f(x) 叫做
g
(
x
)
g(x)
g(x) 的倍式。否则就称
g
(
x
)
g(x)
g(x) 不能整除
f
(
x
)
f(x)
f(x) 或者
f
(
x
)
f(x)
f(x) 不能被
g
(
x
)
g(x)
g(x) 整除。
2.3 多项式分解的几类方法
根据文献[4]中的介绍,常见的多项式分解方法有多项式除法、待定系数法以及利用单位根的方法。
多项式除法,首先要找到多项式的一个根
α
\alpha
α,然后根据多项式除法将原式除以
x
−
α
x-\alpha
x−α,将商进行同样的操作,如果商不可约,则停止。如果有重根,则采用微商法来计算。
待定系数法,将原式假设为若干因式的乘积,与原式对照,解待定系数恒等式求值。
利用单位根的方法,多项式
f
(
x
)
=
x
n
−
1
f(x)=x^n-1
f(x)=xn−1 的
n
n
n 个复根称为
n
n
n 次单位根,公式为:
ϵ
k
=
c
o
s
2
k
π
n
+
i
s
i
n
2
k
π
n
(
k
=
0
,
1...
n
−
1
)
\epsilon_k=cos\frac{2k\pi}{n}+isin\frac{2k\pi}{n}(k=0,1...n-1)
ϵk=cosn2kπ+isinn2kπ(k=0,1...n−1)
但仅能够解决
x
n
−
1
x^n-1
xn−1 和
x
n
−
1
+
.
.
.
+
1
x^{n-1}+...+1
xn−1+...+1 形的多项式分解。
3 解决方案
3.1 定理
定理1 定义在二元域上的多项式
p
(
x
)
p(x)
p(x) 次数不为零的项的数量为偶数时,
p
(
x
)
p(x)
p(x) 必然包含因式
x
+
1
x+1
x+1。
证明: 显然
2
∣
p
(
1
)
2|p(1)
2∣p(1),所以
p
(
1
)
=
0
p(1)=0
p(1)=0,说明
1
1
1 是多项式
p
(
x
)
p(x)
p(x) 的根,所以多项式包含
x
+
1
x+1
x+1 形式的因子。
推论1 定义在二元域上的多项式
p
(
x
)
p(x)
p(x) 次数不为零的项的数量为奇数时,
p
(
x
)
p(x)
p(x) 必然不包含因式
x
+
1
x+1
x+1,且其因式也不包含因式
x
+
1
x+1
x+1。
定理2 定义在二元域上的多项式
p
(
x
)
p(x)
p(x) 若不可约,则
x
0
x^0
x0 项必为
1
1
1。
3.2 方案及实例
方案1 棋盘游戏方法
首先根据多项式的最高系数构建一个
(
m
+
1
)
×
(
n
+
1
)
(m+1)\times (n+1)
(m+1)×(n+1) 的棋盘,保证
m
+
n
m+n
m+n 等于多项式的最高系数。分别用纵坐标和横坐标代表次数为
m
m
m 和次数为
n
n
n 的因子多项式。因式的所有项系数默认为1,通过改变因式的系数使得棋盘对应的横行和纵列表示为0,其他格子则为1。从左到右,每个斜列代表原式的从低到高位的项,对斜列求和,若为
2
2
2 的倍数,则该项为
0
0
0。对于给定的
m
,
n
m,n
m,n,如果任意划去横列和纵列都无法凑出原式,则说明原式不含有该形式的因式。根据厄拉多筛法,若多项式
p
(
x
)
p(x)
p(x) 可约,则必然还有因式
r
(
x
)
r(x)
r(x),使得
d
e
g
(
r
(
x
)
)
≤
⌊
d
e
g
(
p
(
x
)
)
2
⌋
deg(r(x)) \le \lfloor \frac{deg(p(x))}{2} \rfloor
deg(r(x))≤⌊2deg(p(x))⌋,因此对于
p
(
x
)
p(x)
p(x) 只需要检查系数满足上述不等式的多项式即可。对
∀
p
(
x
)
,
d
e
g
(
p
(
x
)
)
\forall p(x), deg(p(x))
∀p(x),deg(p(x)) 可以拆分为
m
+
n
m+n
m+n 且
m
>
n
m>n
m>n 的形式,在这个棋盘上任意选择行列使斜列的奇偶与
p
(
x
)
p(x)
p(x) 对应项的系数一致,然后遍历所有的
m
,
n
m,n
m,n 对。
定理1 若
(
1
1
,
j
1
)
(1_1,j_1)
(11,j1) 和
(
i
2
,
j
2
)
(i_2,j_2)
(i2,j2) 为
1
1
1, 则
(
i
1
,
j
2
)
(i_1,j_2)
(i1,j2) 与
(
i
2
,
j
1
)
(i_2,j_1)
(i2,j1) 均为
1
1
1。
定理2 若
(
i
,
j
)
(i,j)
(i,j) 为
0
0
0,则第
i
i
i 行为
0
0
0 与第
j
j
j 列为
0
0
0 至少有一个成立。
定理3 对于
(
i
1
,
j
1
)
,
(
i
1
,
j
2
)
,
(
i
1
,
j
2
)
,
(
i
2
,
j
2
)
(i_1,j_1),(i_1,j_2),(i_1,j_2),(i_2,j_2)
(i1,j1),(i1,j2),(i1,j2),(i2,j2) 中不存在为
1
1
1 的格子数为奇数的情况。
实例: 分解 F 2 F_2 F2 上多项式 f ( x ) = x 9 + x 8 + x 7 + x 4 + x 3 + x + 1 f(x) = x^9 + x^8 + x^7 + x^4 + x^3 + x + 1 f(x)=x9+x8+x7+x4+x3+x+1
d
e
g
(
f
(
x
)
)
=
9
=
5
+
4
deg(f(x))=9=5+4
deg(f(x))=9=5+4
将多项式
f
(
x
)
f(x)
f(x) 拆分成
6
×
5
6 \times 5
6×5 的棋盘,如下所示:
x\y | |||||
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | |
0 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 | 1 | 1 |
3 | 1 | 1 | 1 | 1 | 1 |
4 | 1 | 1 | 1 | 1 | 1 |
5 | 1 | 1 | 1 | 1 | 1 |
因为
x
9
,
x
0
x^9, x^0
x9,x0 项的次数为1,所以
(
0
,
0
)
,
(
0
,
1
)
,
(
1
,
0
)
,
(
1
,
1
)
(0,0),(0,1),(1,0),(1,1)
(0,0),(0,1),(1,0),(1,1) 为1,所以
x
=
0
,
x
=
5
,
y
=
0
,
y
=
4
x=0,x=5,y=0,y=4
x=0,x=5,y=0,y=4 要保留。另一方面,
x
8
,
x
7
,
x
1
x^8, x^7, x^1
x8,x7,x1 项的次数为1,所以
y
=
3
,
x
=
4
y=3,x=4
y=3,x=4 中必有一个保留一个消去,
y
=
1
,
x
=
1
y=1,x=1
y=1,x=1 和
y
=
2
,
x
=
3
y=2,x=3
y=2,x=3 也是如此。剩余
8
×
2
0
×
2
1
=
16
8 \times 2^0 \times 2^1 = 16
8×20×21=16 种组合。
用
z
z
z 表示乘积,根据推论1排除,所有组合为:
- x : ( 1 , 1 , 1 , 1 , 1 , 1 ) , y : ( 1 , 0 , 0 , 0 , 1 ) x:(1,1,1,1,1,1),y:(1,0,0,0,1) x:(1,1,1,1,1,1),y:(1,0,0,0,1) X
- x : ( 1 , 0 , 1 , 1 , 1 , 1 ) , y : ( 1 , 1 , 0 , 0 , 1 ) , z : ( 1 , 1 , 1 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ) x:(1,0,1,1,1,1),y:(1,1,0,0,1),z:(1,1,1,0,1,0,0,1,1,1) x:(1,0,1,1,1,1),y:(1,1,0,0,1),z:(1,1,1,0,1,0,0,1,1,1)
- x : ( 1 , 1 , 1 , 1 , 0 , 1 ) , y : ( 1 , 0 , 0 , 1 , 1 ) , z : ( 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0 , 1 , 1 ) x:(1,1,1,1,0,1),y:(1,0,0,1,1),z:(1,1,1,0,0,1,0,0,1,1) x:(1,1,1,1,0,1),y:(1,0,0,1,1),z:(1,1,1,0,0,1,0,0,1,1)
- x : ( 1 , 0 , 1 , 1 , 0 , 1 ) , y : ( 1 , 1 , 0 , 1 , 1 ) , z : ( 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 1 ) x:(1,0,1,1,0,1),y:(1,1,0,1,1),z:(1,1,1,1,0,0,1,1,1,1) x:(1,0,1,1,0,1),y:(1,1,0,1,1),z:(1,1,1,1,0,0,1,1,1,1)
- x : ( 1 , 1 , 1 , 0 , 1 , 1 ) , y : ( 1 , 0 , 1 , 0 , 1 ) , z : ( 1 , 1 , 0 , 1 , 1 , 0 , 0 , 1 , 1 , 1 ) x:(1,1,1,0,1,1),y:(1,0,1,0,1),z:(1,1,0,1,1,0,0,1,1,1) x:(1,1,1,0,1,1),y:(1,0,1,0,1),z:(1,1,0,1,1,0,0,1,1,1) 与原式一致
- x : ( 1 , 0 , 1 , 0 , 1 , 1 ) , y : ( 1 , 1 , 1 , 0 , 1 ) x:(1,0,1,0,1,1),y:(1,1,1,0,1) x:(1,0,1,0,1,1),y:(1,1,1,0,1) X
- x : ( 1 , 1 , 1 , 0 , 0 , 1 ) , y : ( 1 , 0 , 1 , 1 , 1 ) x:(1,1,1,0,0,1),y:(1,0,1,1,1) x:(1,1,1,0,0,1),y:(1,0,1,1,1) X
- x : ( 1 , 0 , 1 , 0 , 0 , 1 ) , y : ( 1 , 1 , 1 , 1 , 1 ) , z : ( 1 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 ) x:(1,0,1,0,0,1),y:(1,1,1,1,1),z:(1,1,0,0,0,0,0,1,1,1) x:(1,0,1,0,0,1),y:(1,1,1,1,1),z:(1,1,0,0,0,0,0,1,1,1)
- x : ( 1 , 1 , 0 , 1 , 1 , 1 ) , y : ( 1 , 0 , 0 , 0 , 1 ) , z : ( 1 , 1 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 ) x:(1,1,0,1,1,1),y:(1,0,0,0,1),z:(1,1,0,1,0,0,0,1,1,1) x:(1,1,0,1,1,1),y:(1,0,0,0,1),z:(1,1,0,1,0,0,0,1,1,1)
- x : ( 1 , 0 , 0 , 1 , 1 , 1 ) , y : ( 1 , 1 , 0 , 0 , 1 ) x:(1,0,0,1,1,1),y:(1,1,0,0,1) x:(1,0,0,1,1,1),y:(1,1,0,0,1) X
- x : ( 1 , 1 , 0 , 1 , 0 , 1 ) , y : ( 1 , 0 , 0 , 1 , 1 ) x:(1,1,0,1,0,1),y:(1,0,0,1,1) x:(1,1,0,1,0,1),y:(1,0,0,1,1) X
- x : ( 1 , 0 , 0 , 1 , 0 , 1 ) , y : ( 1 , 1 , 0 , 1 , 1 ) x:(1,0,0,1,0,1),y:(1,1,0,1,1) x:(1,0,0,1,0,1),y:(1,1,0,1,1) X
- x : ( 1 , 1 , 0 , 0 , 1 , 1 ) , y : ( 1 , 0 , 1 , 0 , 1 ) x:(1,1,0,0,1,1),y:(1,0,1,0,1) x:(1,1,0,0,1,1),y:(1,0,1,0,1) X
- x : ( 1 , 0 , 0 , 0 , 1 , 1 ) , y : ( 1 , 1 , 1 , 0 , 1 ) x:(1,0,0,0,1,1),y:(1,1,1,0,1) x:(1,0,0,0,1,1),y:(1,1,1,0,1) X
- x : ( 1 , 1 , 0 , 0 , 0 , 1 ) , y : ( 1 , 0 , 1 , 1 , 1 ) x:(1,1,0,0,0,1),y:(1,0,1,1,1) x:(1,1,0,0,0,1),y:(1,0,1,1,1) X
- x : ( 1 , 0 , 0 , 0 , 0 , 1 ) , y : ( 1 , 1 , 1 , 1 , 1 ) x:(1,0,0,0,0,1),y:(1,1,1,1,1) x:(1,0,0,0,0,1),y:(1,1,1,1,1) X
所以可以将原式初步分解为: ( x 5 + x 4 + x 2 + x + 1 ) ⋅ ( x 4 + x 2 + 1 ) (x^5+x^4+x^2+x+1) \cdot (x^4+x^2+1) (x5+x4+x2+x+1)⋅(x4+x2+1),重复上述过程,直到因式不可分解为止。最后得到的因式分解为: ( x 5 + x 4 + x 2 + x + 1 ) ⋅ ( x 2 + x + 1 ) 2 (x^5+x^4+x^2+x+1) \cdot (x^2+x+1)^2 (x5+x4+x2+x+1)⋅(x2+x+1)2。
正确性分析: 这里不做详细地推导,但是简单地对此进行一个理解以说明方案的正确性。对于棋盘中的任意格子可以表示为一个坐标 ( x , y ) (x,y) (x,y),可以简单理解 x , y x,y x,y 表示参与乘法的两个因式的对应项,此时 x + y x+y x+y 表示乘积对应项的次数。我们可以发现,每个斜列的所有格子代表项的次数相同,所以对于斜列的所有格子求和就可以的得到乘积对应项的系数。另一方面,二元域上的多项式的系数定义在 F 2 F_2 F2 上,所以如果求和斜列上所有的格子得到的数是偶数,则对应项的系数为0,否则为1。
方案2 多项式除法
结合厄拉多筛法,对于多项式
p
(
x
)
p(x)
p(x) 可约,则必有因式
r
(
x
)
r(x)
r(x),使得
d
e
g
(
r
(
x
)
)
≤
⌊
d
e
g
(
p
(
x
)
)
2
⌋
deg(r(x)) \le \lfloor \frac{deg(p(x))}{2} \rfloor
deg(r(x))≤⌊2deg(p(x))⌋,次数从低到高构造次数不高于
d
e
g
(
p
(
x
)
)
2
\frac{deg(p(x))}{2}
2deg(p(x)) 的不可约多项式,然后将多项式
p
(
x
)
p(x)
p(x) 依次与这些不可约多项式相除,最后获得因式分解。
实例: 分解 F 2 F_2 F2 上多项式 f ( x ) = x 9 + x 8 + x 7 + x 4 + x 3 + x + 1 f(x) = x^9 + x^8 + x^7 + x^4 + x^3 + x + 1 f(x)=x9+x8+x7+x4+x3+x+1
次数为
1
1
1 的不可约多项式:
x
+
1
x+1
x+1
次数为
2
2
2 的不可约多项式:
x
2
+
x
+
1
x^2+x+1
x2+x+1
次数为
3
3
3 的不可约多项式:
x
3
+
x
2
+
1
x^3+x^2+1
x3+x2+1、
x
3
+
x
+
1
x^3+x+1
x3+x+1
次数为
4
4
4 的不可约多项式:
x
4
+
x
3
+
1
x^4+x^3+1
x4+x3+1、
x
4
+
x
+
1
x^4+x+1
x4+x+1
根据多项式除法:
(
x
9
+
x
8
+
x
7
+
x
4
+
x
3
+
x
+
1
)
÷
(
x
2
+
x
+
1
)
=
x
7
+
x
+
1
(x^9 + x^8 + x^7 + x^4 + x^3 + x + 1) \div (x^2+x+1) = x^7+x+1
(x9+x8+x7+x4+x3+x+1)÷(x2+x+1)=x7+x+1
(
x
7
+
x
+
1
)
÷
(
x
2
+
x
+
1
)
=
x
5
+
x
4
+
x
2
+
x
+
1
(x^7+x+1) \div (x^2+x+1) = x^5+x^4+x^2+x+1
(x7+x+1)÷(x2+x+1)=x5+x4+x2+x+1
x
5
+
x
4
+
x
2
+
x
+
1
x^5+x^4+x^2+x+1
x5+x4+x2+x+1 不可约。
综上 f ( x ) = x 9 + x 8 + x 7 + x 4 + x 3 + x + 1 = ( x 5 + x 4 + x 2 + x + 1 ) ⋅ ( x 2 + x + 1 ) 2 f(x) = x^9 + x^8 + x^7 + x^4 + x^3 + x + 1 = (x^5+x^4+x^2+x+1) \cdot (x^2+x+1)^2 f(x)=x9+x8+x7+x4+x3+x+1=(x5+x4+x2+x+1)⋅(x2+x+1)2
4 结论
本文提出了两种因式分解的方案,并根据实例进行多项式分解。实际上根据文献中的描述,还存在很多有限域上的多项式分解的方法,限于篇幅,这里不做详细介绍。
多项式的分解和整数的分解有很多类似的地方,但是不同于整数,同一个次数的多项式有多个不可约多项式,这使得多项式的分解更加复杂。而结合二元域的一些性质,可以极大地降低多项式分解的复杂度。在二元域中,加法等于减法,多项式乘以
2
2
2 等于0,这些特征都可以用于多项式分解。
本文中采用了3.1中的定理1加快了对二元域上的多项式分解,从概率学的角度来说,可以过滤一半的因式,从方案1中即可看出,通过这个定理过滤了大部分的组合。而在方案2中,结合了定理1和定理2迅速的找出不同次数的不可约多项式,然后根据厄拉多筛法和不可约多项式就可以分解多项式。
最后分解
F
2
F_2
F2 上多项式
f
(
x
)
=
x
9
+
x
8
+
x
7
+
x
4
+
x
3
+
x
+
1
=
(
x
5
+
x
4
+
x
2
+
x
+
1
)
⋅
(
x
2
+
x
+
1
)
2
f(x) = x^9 + x^8 + x^7 + x^4 + x^3 + x + 1 = (x^5+x^4+x^2+x+1) \cdot (x^2+x+1)^2
f(x)=x9+x8+x7+x4+x3+x+1=(x5+x4+x2+x+1)⋅(x2+x+1)2。
5 参考文献
[1] 孙荣辛,田园.基于Miller-Rabin素性检测的多项式分解算法[J].计算机科学与探索,2014,8(12):1474-1484.
[2] 丁洋,王永超.多项式 x n − 1 x^n-1 xn−1在有限域 F p F_p Fp上的因式分解[J].上海大学学报(自然科学版),2020,26(02):189-196.
[3] 陈玺,屈龙江,海昕,李超.棋盘游戏与有限域上多项式分解算法[J].数学的实践与认识,2014,44(06):210-215.
[4] 王锋.多项式因式分解的几类方法[J].电子制作,2013(22):180.DOI:10.16589/j.cnki.cn11-3571/tn.2013.22.005.