2、(g(x))r(x)称为f(x)模g(x)的余式3、多项式的周期:定义:设f(x)为二元域上次数不为0的多项式,且f(O)HO,则f(x)
3、(xn+1)的最小正整数n称为多项式f(x)的周期,(n>=n(f(x)))实现方法:方法一:长除法求多项式周期用多项式f(x)按升幕排列去除〔,当所得余式是单项xn时,f(x)的周期即为no方法二:利用欧拉■费尔马定理4、GF(2)的扩域GF(25)扩域GF(2八n):设p(x)为GF(2)±的n次既约多项式,模p(x)的所有2八n个余式在模p(x)加法和乘
4、法下构成2人n元域,称为GF(2)的扩域(也称为模p(x)的剩余类域),记为GF("n)o5、幕运算:元素累乘6、元素求阶:具有性质/n=e的最小正整数n称为a的阶7、求解元素的极小多项式:最小多项式:以扩域GF(2m)上的非零元素B为根的最低次多项式称为B的最小多项式,记为M(x)求解方法:待定系数法三.实验结果我在我的函数中规定:代表多项式的向量,从左到右为多项式高次到低次1、多项式的加、乘运算:在进行多项式的加法、乘法运算的编程时,思路来自于老蒋蒋凌云。加法:二元域上的多项式加法遵从模2加的
5、运算规则。在编程时,输入的两个向量必须维度一致,MATLAB才能对其进行处理和运算。因此,先将输入的两个多项式向量维度设定一致,再运用mod函数求出最终结function[zc]=zsadd(x,y)lx=length(x);ly=length(y);lm=max(lx,ly);x=[zeros(1,lm-lx),x];y=[zeros(1Jm-ly),y];zc=mod(x+y,2);end乘法:乘法运算也存在着与加法运算相同的问题z即向量维度要保持一致。在进行本次试验编程之前,我曾经向教员询问
6、过实验该如何做。教员就拿乘法当做例子为我进行了讲解。我选择了教员提供的方法中较为简单的一种,即对输入向量进行卷积运算,再对其卷积结果进行mod2运算,得到最终结果。lx=length(x);ly=length(y);lm=max(lx,ly);x=[zeros(1,lm-lx),x];y=[zeros(1,lm-ly),y];zc=conv(x,y);zc=mod(zc,2);但在运用上面的思想编岀了乘法函数之后,在实验第二项同余类域的运算中,结果出现了一些问题,仍与向量的维度有关,我不得不考虑,
7、若是输入向量次数低于向量维度即类似【001101】的这种情况,我后面所进行的编程要求将其前几位的0消去,得到的最终结果也要求最高次为1o于是我添加了a=find(x==1,1,'first');b=length(x);x=x(a:b);a1=find(y==1,1/first1);b1=length(y);y=y(a1:b1);来消去0.2、多项式的除法:我认为多项式的除法运算是本次试验的最难也是最重要的一项函数,在进行后面编程时除法岀现问题又对其重新进行修改,我一共修改了五次。我的编程思想是:选
8、择那些原理并不高深、岀现问题我能及时理解情况的方法。因此我选择了两个具体的多项式进行手动计算,将运算一步一步地实现,最终连贯到一起,就得出了除法函数。一开始,我以两个输入向量的次数为标准进行判断,这种方法同样遇到了维度的问题,在进行了第一次修改之后成功了,但在进行周期函数的编程时,岀现了问题,即被除数次数小于除数次数的情况,我添加了判断次数大小的语句,分成两种情况来进行判断,但在进行判断输入多项式是否为既约多项式的编程中,又出现了除数次数与被除数次数相同的情况,我在原本的除法程序上添加了第二种判断
9、语句,这样就将除法运算分成了三种情况,但此次修改中除法函数无法再正常地进行运算,各个判断条件无法兼容,后来我听取了老蒋的建议,将除数与被除数进行二进制到十进制转化,以十进制的大小为判断标准,重新编了除法,这样就只分成了两种情况,即大于等于和小于,大于等于进行正常运算,被除数小于除数就输出商为0,余数为被除数。后来又进行了一次适应后续函数的修改,终于将除法函数定型。function[zc,r]=zcchu2(x,y)a=find(x==1,1,'first');b=length(x)