有限域(3)——多项式环的商环构造有限域

时间:2022-06-11
本文章向大家介绍有限域(3)——多项式环的商环构造有限域,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址

  http://www.cnblogs.com/Colin-Cai/p/9489225.html 

  作者:窗户

  QQ/微信:6679072

  E-mail:6679072@qq.com

  接着上两章内容,我们还是得继续寻找有限域的构造方法。上章证明矩阵环是个单环,自然是没戏了,但我们还可以考虑多项式环。

 多项式环

  多项式是我们大家熟知的概念,以下都是一元多项式:

  1

  2x+4

  x2+2x+3

  3x2+5x2+9

  ...

  所谓的一元就是只有一个未知数,在这里我就不对于一元多项式给出一个严格的定义了,直接解释多项式环。

  所谓一个环A的多项式环B,指的是如下:

  (1) B的每个元是一个一元多项式

  (2) B的每个元(一元多项式)的每一个系数都是A上的元

  (3) 系数全是A上的元的一元多项式都是B的元

  多项式的加法、减法就是合并同类项,因为系数取自一个环,所以系数间的加法、减法是合法的,会得到别的多项式。

  同样,多项式的乘法要麻烦一点,不过也是得到多项式的。多项式的乘法是利用分配律,展开各项。以下整系数多项式的例子可以让我们回忆起多项式的乘法:

  (x2+2x+3) * (3x+5)

  = (x2+2x+3) * 3x + (x2+2x+3) * 5

  = x2 * 3x + 2x * 3x + 3 * 3x + x2 * 5 + 2x * 5 + 3 *5

  = 3x3 + 6x2 + 9x + 5x2 + 10x + 15

  = 3x3 + 11x2 + 19x + 15

  因为系数都在一个环里,所有乘法、加法都是封闭的,所以多项式乘法也是一样合法的。

  所以多项式环当然是环。

  可能有的人想问,为什么这里非要用一元多项式?

  其实我们在刚才的多项式环定义那里为多项式引入任意多个未知数(甚至无穷多个未知数),其组成的代数系统依然为环,只是多元的多项式环挺复杂,这里不研究。

不可分多项式

  我们知道质数是2、3、5、7、11、13、17...这样除了1和本身外没有其他正约数的正整数。

  我们在这里对质数做一个引申。

  一个多项式环上的任意多项式,当然可以表示为1和自身的乘积,当然也可以表示为-1(1元的相反元)和自身的相反元的乘积,这两者都是很平凡的。

  比如:

  x2+x+1 = 1 * (x2+x+1) 

          = -1 * (-x2-x-1)

  这都是平凡的,没什么意义。

  如果是域上的多项式环,里面任何多项式表示成域上任何一个非0元和一个多项式的乘积。从而,这些也都是平凡的。

  而所谓真正意义上的分解,就是要求两个乘积项都不是常数,也就是次数是大于0的。

  比如,

  x2+2x+1 = (x+1) * (x+1)

  不可分解的多项式我们称之为不可分多项式。

  比如整数系数下的x2+x+1就是不可分多项式,实际上,即使是2元域(0/1两个元组成的特征2的域)上,这个多项式也是不可分多项式。

  但在7元域(0/1/2/3/4/5/6组成的特征7的域)上,

  x2+x+1 = (x+3) * (x+5) 

 多项式的带余除法

  我们从小就知道自然数的带余除法,

  比如

  7÷3 = 2 ... 1

  换个写法,7 = 3*2+1

  其实,域的多项式环里的多项式也存在这样的带余除法。

  对于多项式f和g(g为非0多项式),一定存在唯一的多项式a和b,满足

  f = g*a+b

  并且b的次数小于g的次数。

  其实证明起来很简单,就如同儿时的竖式除法计算那样,一步步的把高次的项减掉。

  比如我们以2阶素域下的多项式 x5+x4+x+1 和 x2+x+1为例

                                                  x3     + x      +1

                           _________________________   

        x2 + x + 1    |     x5 + x4                 + x    + 1

                                  x5 + x4 + x3

                           ______________

                                                  x3         + x

                                                  x3 + x2 + x

                                                 ___________

                                                          x2          + 1

                                                          x2   + x   + 1

                                                       ____________

                                                                    x

  所以,

      x5+x4+x+1 = (x2+x+1) * (x3+x+1)  + x

  带余除法对于后面的理解有至关重要的作用。

 有限域

  既然想通过商环的方法构造域,那么当然要先考虑多项式环的理想。

  我们依然使用生成元的方法去研究。

  我们以 p阶素域 作为原本的环 A, 那么A的多项式环称为 B,

  我们考虑由多项式 f 生成的理想,我们假设 f 是可以分解的,f = f1 * f2。

  f1、f2并不在理想里,很明显,f1、f2的次数比f都低,不存在f乘以一个多项式得到f1 或 f2。

  我们再回忆一下商环的运算,根据f = f1 * f2,我们有

  商集(f1) * 商集(f2) = 商集(f)

  商集(f)其实就是理想,也就是商环里的0元,

  从而左边两个非0元乘法得到右边的0元,于是这个商环不是整环,当然更不可能是域了。

  于是我们考虑由单个不可分多项式生成的理想。

  考虑其下一个m次不可分多项式 f(最高未知数次数为m)生成的理想 C ,

  然后我们考虑商环B/C长什么样。

  理想C其实是所有以多项式 f 为因子的多项式的集合。

  我们考虑所有次数小于m的多项式,根据排列组合的乘法原理,这样的多项式一共有pm个。

  对于任意两个不同的次数小于m的多项式,假设为g和h。

  g-h为非0的次数小于m的多项式,从而g-h不可能以f为因子,从而g-h不在理想里,从而g和h一定属于不同的商集。

  因为g和h选择的随意性,从而这pm个多项式分属于pm个不同的商集。

  上面介绍过带余除法,考虑次数大于等于m的多项式,假设有一个这样的多项式h,

  一定存在一个多项式a和一个次数小于m的多项式b,使得

  h = g*a+b

  h-b = g*a

  g*a在理想C里,于是h和b在同一个商集里。

  由于h选择的随意性,从而任何一个次数大于等于m的多项式都落在那pm个不同的商集里。

  所以,我们最终的这个商环也就有pm个元。

  这里多项式乘法的可交换性遗传自域乘法的可交换,从而这个商环可交换是必然的。

  另外,f的不可分特性导致了如果任意g、h不以f为因子,则g*h也不以f为因子。从而,这个商环是一个整环。

  有限的可交换整环,因为其有限性,那么当然是除环,从而当然就是域啦(其实,并不存在有限的不可交换整环,不过这个定理证明有那么点麻烦)。

  OK,我们终于找到了构造任意阶有限域的方法。

  我们可以用这pm个次数小于m的多项式来代表这个域的各个元素。加法、减法就是合并同类项。

  乘法就是多项式乘法结果再利用带余除法除以多项式 f 得到的余数。

  我们来举个例子。

  x2+x+1 是 2阶素域下的不可分多项式。

  利用刚才的手段得到了一个4阶域,我们可以记该域下的4个元为

  [0]

  [1]

  [x]

  [x+1]

  其四则运算为

  [0] + [0] = [0]  [0] - [0] = [0]  [0] * [0] = [0]

  [0] + [1] = [1]  [0] - [1] = [1]  [0] * [1] = [0]  [0] / [1] = [0]

  [0] + [x] = [x]  [0] - [x] = [x]  [0] * [x] = [0]  [0] / [x] = [0]

  [0] + [x+1] = [x+1]  [0] - [x+1] = [x+1]  [0] * [x+1] = [0]  [0] / [x+1] = [0]  

  [1] + [0] = [1]  [1] - [0] = [1]  [1] * [0] = [0]

  [1] + [1] = [0]  [1] - [1] = [0]  [1] * [1] = [1]  [1] / [1] = [1]

  [1] + [x] = [x+1]  [1] - [x] = [x+1]  [1] * [x] = [x]  [1] / [x] = [x+1]

  [1] + [x+1] = [x]  [1] - [x+1] = [x]  [1] * [x+1] = [x+1]  [1] / [x+1] = [x]

  [x] + [0] = [x]  [x] - [0] = [x]  [x] * [0] = [0]

  [x] + [1] = [x+1]  [x] - [1] = [x+1]  [x] * [1] = [x]  [x] / [1] = [x]

  [x] + [x] = [0]  [x] - [x] = [0]  [x] * [x] = [x+1]  [x] / [x] = [1]

  [x] + [x+1] = [1]  [x] - [x+1] = [1]  [x] * [x+1] = [1]  [x] / [x+1] = [x+1] 

  [x+1] + [0] = [x+1]  [x+1] - [0] = [x+1]  [x+1] * [0] = [0]

  [x+1] + [1] = [x]  [x+1] - [1] = [x]  [x+1] * [1] = [x+1]  [x+1] / [1] = [x+1]

  [x+1] + [x] = [1]  [x+1] - [x] = [1]  [x+1] * [x] = [1]  [x+1] / [x] = [x]

  [x+1] + [x+1] = [0]  [x+1] - [x+1] = [0]  [x+1] * [x+1] = [x]  [x+1] / [x+1] = [1]

  附:上一章有网友提议用LaTeX,嗯,本人确实有点懒,不过后面会考虑的。

另外,很多网上文章这里都写 本原多项式 ,人云亦云,悲哀,一帮只愿去抄书不愿去理解的人啊。

  建议还是先去了解一下什么叫本原多项式吧。