不可约多项式及本原多项式(包含大量计算例子)
多项式
多项式是一个或多个带有系数的变量的幂运算之和的数学表达式,只有一个变量的多项式可以表示为\(a_nx^n+\cdots+a_1x+a_0\),多项式变量的最高次数称为多项式的阶。
对任意一个多项式\(P(x)\),其中\(P(x)\ne 0\),即常数项不为0,可以表示为
\(P(x)=P(0)\prod_{\rho \in \mathbb{X}}(1-\frac{x}{\rho})\),\(\rho\)是方程\(P(x)=0\)的根,即\(P(\rho)=0\)。
例如对于多项式\(P(x)=x^6-2x^4+2x^2-1\)
在有理数域上可以分解为\(P(x)=(x+1)(x-1)(x^4-x^2+1)\)
在实数域上可以分解为\(P(x)=(x+1)(x-1)(x^2-\sqrt{3}x+1)(x^2+\sqrt{3}x+1)\)
在复数域上可以分解为\(P(x)=(x+1)(x-1)(x-\frac{\sqrt{3}+i}{2}))(x-\frac{\sqrt{3}-i}{2}))(x+\frac{\sqrt{3}+i}{2}))(x+\frac{\sqrt{3}-i}{2})\)
多项式加法案例
\(P(x)=x^3+x^2+4x-3\)
\(Q(x)=2x^2-3x+5\)
\(P(x)+Q(x)=x^3+(2+1)x^2+(4-3)x+(-3+5)=x^3+3x^2+x-2\)
多项式乘法案例
\(P(x)=x^3+x^2+4x-3\)
\(Q(x)=2x^2-3x+5\)
\(P(x)Q(x)=2x^5+(-3+2)x^4+(5-3+8)x^3+(-6-12+5)x^2+(20+9)x-15=2x^5-x^4+10x^3-13x^2+29x-15\)
多项式除法案例
定义多项式\(p(x)\)和\(q(x)\),多项式的商为\(Q(x)\),多项式的余项为\(R(x)\),其中存在关系:\(p(x)=Q(x)q(x)+R(x)\),即\(R(x)\equiv p(x) \mod q(x)\)
如对于\(p(x)=x^4+x^3+x^2+x+1\) \(q(x)=x^2-1\) \(Q(x)=x^2+x+2\) \(R(x)=2x+3\),
\(2x+3\equiv x^4+x^3+x^2+x+1 \mod x^2-1\)
计算过程如下。
需要更多计算案例,可以自己设置多项式,用这个网站进行测试验证。
有限域
建议了解有限域的知识后再来理解不可约多项式,关于有限域的内容,可以查看这篇博客。
不可约多项式
如果一个多项式在指定的域上不能分解,则称为不可约多项式。
在有限域\(GF(2^3)\)中,指多项式系数要小于2,即为0和1。多项式的阶不能高于3次。
\(GF(2^2)\)的元素(多项式)为\(0,1,x,x+1\)。
\(GF(2^3)\)的元素(多项式)为\(0,1,x,x+1,x^2,x^2+1,x^2+x,x^2+x+1\)。
\(GF(2^4)\)的元素(多项式)为\(0,1,x,x+1,x^2,x^2+1,x^2+x,x^2+x+1,x^3,x^3+1,x^3+x,x^3+x+1,x^3+x^2,x^3+x^2+1,x^3+x^2+x,x^3+x^2+x+1\)。
类似于模乘法群的概念,当模为素数时,所有比模小的元素都与模互素。那么对于多项式来说,需要找到一个类似素数性质(只能拆分为1和其本身)的多项式来作为多项式的模。
对于\(GF(2^2)\) 可以作为模的候选多项式有\(x^2,x^2+1,x^2+x,x^2+x+1\),即所有阶数为2的多项式。
\(x^2=x\cdot x\),\(x^2+x=x(x+1)\),\(x^2+1\equiv x^2+2x+1=(x+1)(x+1)\)
这三个式子都可分解,因而不能作为不可约多项式。所以只有\(x^2+x+1\)为不可约多项式
对于\(GF(2^3)\) 可以作为模的候选多项式有\(x^3,x^3+1,\cdots,x^3+x^2+x+1\),即所有阶数为3的多项式。首先排除所有不包含常数1的多项式,因为对于不包含常数1的多项式,都可以提出因子\(x\)。则剩余的候选项有\(x^3+1,x^3+x+1,x^3+x^2+1,x^3+x^2+x+1\)
\(x^3+1\equiv x^3+2x^2+2x+1=\left(x+1\right)\cdot \left(x^2+x+1\right)\)
\(x^3+x^2+x+1\equiv x^3+3x^3+3x+1=(x+1)^3\)
这两个式子可以分解,所以不可约多项式有\(x^3+x+1,x^3+x^2+1\)
n | 不可约多项式 |
---|---|
1 | \(x\),\(x+1\) |
2 | \(x^2+x+1\) |
3 | \(x^3+x+1\),\(x^3+x^2+1\) |
4 | \(x^4+x+1\),\(x^4+x^3+1\),\(x^4+x^3+x^2+x+1\) |
5 | \(x^5+x^2+1\),\(x^5+x^3+1\),\(x^5+x^3+x^2+x+1\),\(x^5+x^4+x^3+x+1\),\(x^5+x^4+x^3+x^2+1\),\(x^5+x^4+x^2+x+1\) |
不可约多项式个数
\(\mu(n)=\left\{\begin{array}{ll}
1 & \text { } n=1 \\
(-1)^{k} & \text { n可以被分解为k个不同素数的乘积} \\
0 & \text { 存在素数的平方为 } n \text { 的因子 }
\end{array}\right.\)
多项式个数为\(L_{q}(n)=\frac{1}{n} \sum_{d \mid n} \mu\left(\frac{n}{d}\right) q^{d}\),\(d \mid n\)表示d是n的因子
在\(GF(2^n)\)上
n | 不可约多项式个数 |
---|---|
1 | \(\frac{1}{1}(\mu(\frac{1}{1})2^{1})=2\) |
2 | \(\frac{1}{2}(\mu(\frac{2}{2})2^{2}+\mu(\frac{2}{1})2^1)=1\) |
3 | \(\frac{1}{3}(\mu(\frac{3}{3})2^{3}+\mu(\frac{3}{1})2^1)=2\) |
4 | \(\frac{1}{4}(\mu(\frac{4}{4})2^{4}+\mu(\frac{4}{2})2^2+\mu(\frac{4}{1})2^1)=3\) |
5 | \(\frac{1}{5}(\mu(\frac{5}{5})2^{5}+\mu(\frac{5}{1})2^1)=6\) |
可以看到和上一个表的是相符合的。
关于判断多项式是否为不可约多项式(或是计算更高阶的不可约的多项式),一种简单粗暴的方法是利用穷举的方式,如对于\(GF(2^n)\)的候选多项式是否为不可约多项式,需要判断候选多项式和所有(除1以外)阶数不大于\(\left \lfloor n/2 \right \rfloor\)的多项式进行除法都存在余项。这和判断一个素是否是素数有点类似,一个数\(x\)若无法被所有\(2 \sim \sqrt{x}\)的数整除,则是一个素数。当然数学上还有许多更加快捷的方法,这里就触及到我的知识盲区了,需要另找资料解决。
本原多项式
本原多项式个数计算
要计算\(GF(p^n)\)本原多项式个数,个数\(a_{q}(n)=\frac{\phi\left(p^{n}-1\right)}{n}\),\(\phi\)为欧拉函数。
本原多项式求解
对于\(GF(2^n)\)的本原多项式,只需分解\(x^{2^n}-x\)的多项式即可,求得本原多项式。
对于1到5的本原多项式如下,下面进行验证。
n | 本原多项式 |
---|---|
1 | \(x+1\) |
2 | \(x^2+x+1\) |
3 | \(x^3+x+1\),\(x^3+x^2+1\) |
4 | \(x^4+x+1\),\(x^4+x^3+1\) |
5 | \(x^5+x^2+1\),\(x^5+x^3+1\),\(x^5+x^3+x^2+x+1\),\(x^5+x^4+x^3+x+1\),\(x^5+x^4+x^3+x^2+1\),\(x^5+x^4+x^2+x+1\) |
n | \(x^{2^n}-x\)分解 | 本原多项式 |
---|---|---|
1 | \(x^{2^1}-x = x^2-x\equiv x(x+1)\) | \(x+1\) |
2 | \(x^4-x\equiv x(x+1)(x^2+x+1)\) | \(x^2+x+1\) |
3 | \(x^8-x\equiv x(x+1)(x^3+x^2+1)(x^3+x+1)\) | \(x^3+x+1\),\(x^3+x^2+1\) |
4 | \(x^{16}-x\equiv x(x+1)(x^2+x+1)(x^4+x+1)(x^4+x^3+1)(x^4+x^3+x^2+x+1)\) | \(x^4+x+1\),\(x^4+x^3+1\) |
对于n=4,未将\((x^4+x^3+x^2+x+1)\)作为本原多项式的原因未知。一些本原多项式表直接选取的多项式各项的次数之和最小那个多项式作为本原多项式。