Menu Close

模2多项式运算规则和公式

在数域中介绍了模2运算,由于当今处在数字化时代,模2运算的重要性越来越明显,模2运算逐渐成为计算机,通信,编解码等学科的重要数学基础,因此在这里着重介绍一下模2运算的重要公式,方便读者在对于数字编码、数据校验等理论方面的理解和应用。这里我们用P(X)表示通用模2多项式(Polynomial),P1(X),P2(X),…..Pn(X)表示多项式的各个分支。通常P(X)的表达式为 P(X)=anX n+an-1Xn-1+……+a1X1+a0X0。为了叙述方便假设P1(X),P2(X),P3(X)为不同的多项式,后续论述中都以Pm(X)为例进行讨论。

1.多项式的运算规则

通用多项式P(X)=anX n+an-1Xn-1+……+a1X1+a0X0  ,该多项式的规定和特性解释如下:

  • 多项式是由各个分项的和组成,如anX n ,an-1Xn-1,……+a1X1,a0X0等都是各个分项,
  • 分项是由变量X的幂及对应系数的积组成,由X的不同次幂表示不同的分项,由幂n表示了每个分项在多项式中不同的位置。
  • 多项式中的分项虽然由Xm(m为0,1,2,n)区别不同的分项,但各个分项之间没有权值的关系。
  • X仅表示变量,以及用X的幂区分不同分项,Xm没有数值的含义(m为除0之外的其它值),
  • X0=1,所以P (X)可以表示为 P(X)=anX n+an-1Xn-1+……+a1X1+a0 ,
  • 系数an, an-1,…a0是二值数域,即an, an-1,…a0只有0或1两个值,可以表示为an, an-1,…a0∈{0,1}。
  • 多项式模2运算同样满足交换律,结合律和分配律。例如:

交换律 :P(X)=P1(X)+P2(X)=P2(X)+P1(X)

          结合律 :P(X)=(P1(X)+P2(X))+P3(X)=P1(X)+(P2(X)+P3(X))

分配律:P(X)=P1(X)*(P2(X))+P3(X))=P1(X)P2(X)+P1(X)P3(X))  (*表示乘法)

  • 模2加

    •   模2加:  1+1=0, 1+0=1, 0+1=1,0+0=0;  逻辑运算中,可以表示为 a=(b  XOR  c) ,   其中a , b , c都是二值域,即只有0,1两个值。在后续论述中以^表示异或,a=b  ^ c。
    • 。
    • 多项式的模2加运算应遵循如下规则:
      • 多项式的运算是在各个分项中展开运算,只有幂相等的对应的分项才能进行模2加运算。
      • 由于Xm没有权值的的含义,因此模2运算并不存在进位运算。
      • 在幂值相等的项运算时,计算有如下规则,

Xm +X m=0  ,  Xm  + 0 X m = X m , 0  Xm  +  X m = X m ,

例1:假设P1(X)=a3X3+a2X2+a1X1+a0,   P2(X)=b3X3+b2X2+b1X1+b0, 其中腌a3, a2, a1∈{0,1},  b3, b2, b1∈{0,1}。求P(X)=P1(X)+P2(X)的结果。

解:                  P(X)=P1(X)+P2(X)    =a3X3+a2X2+a1X1+a0+b3X3+b2X2+b1X1+b0

=    ( a3+b3)X3+(a2+b2)X2+(a1+b1)X1+(a0+b0)

=   ( a3^b3)X3+(a2^b2)X2+(a1^b1)X1+(a0^b0)

例2: 如果例1中,a3, a2, a1 , a0分别为 1,1,1,1 ;   b3, 22,b1 , b0分别为 0,1,0,1, 计算P(X)的最终结果

由于系数有了确定的值,P1(X)=X3+X2+X1+1 ,  P2(X)=X2+1因此P(X)= ( 1+0)X3+(1+1)X2+(1+0)X1+(1+1)  = X3+X1

  • 模2减

    •   模2减:  1-1=0, 1-0=1, 0-1=1,0-0=0;  逻辑运算中,可以表示为 a=(b  XOR  c) ,   其中a , b , c都是二值域,即只有0,1两个值。在后续论述中以^表示异或,a=b  ^ c。可见模2减在数值计算中与模2加的结果完全相同。
    • 多项式的模2减运算应遵循如下规则:
      • 多项式的运算是在各个分项中展开运算,只有幂相等的对应的分项才能进行模2减运算。
      • 由于Xm没有权值的的含义,因此模2运算并不存在借位运算。
      • 在幂值相等的项运算时,计算有如下规则,

Xm -X m=0  ,  Xm -0 X m=X m , 0  Xm – X m=  -X m  =  X m。

例1:假设P1(X)=a3X3+a2X2+a1X1+a0,  P2(X)=b3X3+b2X2+b1X1+b0, 其中腌a3, a2, a1∈{0,1},  b3, b2, b1∈{0,1}。求P(X)=P1(X)-P2(X)的结果。

解:                  P(X)=P1(X)-P2(X)    =a3X3+a2X2+a1X1+a0-(b3X3+b2X2+b1X1+b0)

=    ( a3-b3)X3+(a2-b2)X2+(a1-b1)X1+(a0-b0)

=   ( a3^b3)X3+(a2^b2)X2+(a1^b1)X1+(a0^b0)

例2: 如果例1中,a3, a2, a1 , a0分别为 1,1,1,1 ;   b3, 22,b1 , b0分别为 0,1,0,1, 计算P(X)的最终结果

由于系数有了确定的值,P1(X)=X3+X2+X1+1 ,  P2(X)=X2+X1  因此P(X)= ( 1-0)X3+(1-1)X2+(1-0)X1+(1-1)  = X3+X1

  • 模2乘法

针对多项式的模2乘法,有如下规则:

    • 不同项幂次项之间可以相乘,相乘结果使X的幂相加,系数相乘(相与),如 X2  *  X1= X3
    • 两个多项式乘法的展开式与普通多项式展开算法相同,如(X+1)2=(X+1)*(X+1)=X  *X+ X + X  + 1=X2 +1         (X+X=0    见模2加法多项式运算规则)

例3:计算P(X)=(X+1)3

P(X)=(X+1)3=(X+1)*(X+1)2=(X+1)*(X2 +1)=X3+X +X2+1=X3+X2+X +1

  •  模2乘公式总计如下:
    • (X+1)2 =  X2 +1
    • (X+1)3  =  X3 + X2 + X  + 1
    • (X+1)n= Xn+1                                                                       n为偶数
    • (X+1)n= Xn+Xn-1+Xn-2+…..+ X+1                                   n为奇数
  • 因式分解
    • 充分利用 Xm+Xm=0的特点,在多项式中添加因子实现因式分解

例4 : 利用因式分解求解P(X)=X5+1的整除多项式

解: P(X)=X5+1=X5+X4+X4+X3+X3+X2+X2+X+X+1

=X4(X+1)+X3(X+1)+X2(X+1)+X(X+1)+(X+1)

=(X+1)(X4+X3+X2+X+1)

所以多项式P(X)=X5+1可以被多项式X+1或多项式(X4+X3+X2+X+1)整除。

例5,利用添加因子和因式分解求模2除X5+1/(X4+X3+X2+1)的余数 即(100001)/(11101)的余数

          解:  X5+1=(X+1)(X4+X3+X2+X+1)

(X4+X3+X2+1)=(X+1)4+X2(X+1)=(X+1)(X3+X2+X+1+X2)=(X+1)(X3+X+1)

所以X5+1/(X4+X3+X2+1)=(X4+X3+X2+X+1)/(X3+X+1)的余数

                    (X4+X3+X2+X+1)/(X3+X+1)=((X4+X2+X)+(X3+1))/(X3+X+1)

由于(X4+X2+X)能被(X3+X+1)整除,可以丢弃,因此只要求取(X3+1)/(X3+X+1)的余数就可以了,

                     而(X3+1)/(X3+X+1)的余数为X,因此根据X4+X3+X2+1最高次幂为4,的余数为0010.

熟练使用各种技巧比长除法竖式计算简单很多。可见因式分解以及因子组合对模2除的化简有很大的帮助。

  • 模2除法

模2除常用的方法有两种:(1)因式分解以及因子组合,如例5,(2)竖式长除法,如上节除法中使用竖式的方法。

模2运算是数字编解码的基础,因此各种运算技巧应数量掌握。

Posted in FPGA, FPGA 教材教案, IC, 教材与教案, 文章

1 Comment

  1. wangff

    谢谢老师的这篇文章,很有趣,文章思路层层递进,一环扣一环,真的很棒,像我这样数学不好的学生都能看懂领会,真心为老师点赞!

发表回复

相关链接