在数域中介绍了模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运算是数字编解码的基础,因此各种运算技巧应数量掌握。
谢谢老师的这篇文章,很有趣,文章思路层层递进,一环扣一环,真的很棒,像我这样数学不好的学生都能看懂领会,真心为老师点赞!