同余式

同余式

在同余的基础上,引入同余式的概念,这里将要介绍如何求解一次同余式,以及如何求解同余式方程组。

求解同余式

一次同余式的求解思路:

(a,m)=1,ax1modm(a,m)=1,axbmodmaxbmodm

Thm.1:设m是一个正整数,整数a满足ma,则同余式ax1modm有解的充要条件是(a,m)=1,并且解唯一。

证明.
由贝祖等式可知,存在唯一的整数s,t满足sa+tm=(a,m)=1,而贝祖等式中的整数s,t可以通过广义欧几里得除法算出。
Remark: 最效率的求逆元的方法是通过广义欧几里得除法。

如果有逆元,即aa1modm,那么求解axbmodm也很简单了,即xabmodm,其中aa的逆元。

Thm.2:设m是一个正整数,整数a满足ma,则同余式axbmodm有解的充要条件是(a,m)|b,并且其解为:
xb(a,m)((a(a,m))1(modm(a,m)))+tm(a,m)modm

Proof:
必要性.
axbmodm有解x0时,意味着y0Z,满足ax0y0m=b
同时,(a,m)a,(a,m)m
a,若满足ab,ac,则asa+tb,s,tZ
(a,m)ax0y0m=b
充分性.
(a,m)b,则b(a,m)Z
考虑如下同余式:
a(a,m)x1modm(a,m)
由算术基本定理可得,(a(a,m),m(a,m))=1
根据Thm.1,则能得到上述同余式的解x0
则同余式:
a(a,m)xb(a,m)modm(a,m)
的解为x1=x0b(a,m)modm(a,m),即:
a(a,m)x1=b(a,m)+tm(a,m),tZ
那么显然有:ax1bmodm

Remark: 同余式 axbmodm,相当于是(a,m)=1,axbmodm同余式的基础上,kZ,(ax)kbkmod(mk)
所以,可以将axbmodm的求解问题归约到求解同余式(a,m)=1,ax1modm问题上。

中国剩余定理

ChineseRemainderTheorem:设m1,m2,,mkk个两两互素的正整数,则对任意的整数b1,b2,,bk同余式组:
{xb1modm1xbkmodmk
一定有解,且解唯一,令:m=m1m2mk
Mi=mmi
MiMi1modmi
则上述同余式组的解可以表示为:
xb1M1M1+b2M2M2++bkMkMkmodm
也就是说,上述同余式有解的充要条件是m1,m2,,mk两两互素。

Proof:
已知(mi,mj)=1,ij,且m=m1m2mk,而
Mi=mmi=m1m2mi1mi+1mk
所以有(mi,Mi)=1,即一组与mi互素的数的乘积仍然与mi互素
对于满足MiMi1modmi的整数Mi,可进行如下构造:
xb1M1M1+b2M2M2+bkMkMkmodm
将其代入到上述同余式中的任意式子:
b1M1M1+b2M2M2+bkMkMkbimodmi
因为mi|Mj,ij,因此上述同余式转换为:
0+0++biMiMi+0++0bimodmi
MiMi1modmi
所以上述构造显然是成立的,并且唯一性显然成立。

Example: 取自《孙子算经》:“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”
{x2mod3x3mod5x2mod7
m=357=105
M1=35,M2=21,M3=15,算出对应的逆元M1=2,M2=1,M3=1,构造同余式解:
x=270+321+215=23323mod105

环上中国剩余定理

也就是中国剩余定理在环论中的延伸。

在环论中,环R与其理想I构成的商集R/I也能构成一个环,这个环称为商环。

理想I满足,aR,aII,IaI
构造理想的方式通常是取nR,I=nR={na|aR}

环上中国剩余定理,对于环R,其中理想I满足I=I1I2Ik,并且Ii两两互素,则根据中国剩余定理能够如下的映射:
s:R/IR/I1×R/I2××R/Ik
s(a):aamodI1,amodI2,,amodIk

该映射是同构映射:同态,s(ab)=s(a)s(b);满射,s1(b1,b2,,bk)=bR/I。而构造该映射的逆映射s1实际上就是同余方程组的求解过程。

将中国剩余定理应用到多项式环上,就可以得到多项式的数论变换,也就是将两个多项式的乘法转换成两个向量的乘法。

反之,也可以用环Zm理解中国剩余定理:
m=m1m2mk,其中(mi,mj)=1,ij,则可构造同构映射:
s:ZmZm1×Zm2××Zmk
s(a):a(amodm1,amodm2,,amodmk)
同构映射的逆映射s1的构造,实际就是中国剩余定理。

posted @   2hYan9  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示