题:求解同余式35x==1 mod 97,问怎么用最大公因数的性质求解。 注意: mod 的本质是 0类剩余类。即 a mod m= a + 0 mod m= a + [0] = a+ m**, [0]表示m的余数为0的剩余类,简称0类剩余类,**表示任意可变的整数值。] 题目转化:求解不定方程35x=1+97y 解一: 35x=1+97y 35z=1-8y 注:将35的倍数集中到35x上并改用新变量 3z=1-8w 注:将8的倍数集中到8y上并改用新变量 由此立即看出可取特解z=3,w=-1,逆即得特解。 下面提出一种利于快速计算(特别是手算、口算心算)的细节算法将上面三个式子中的两邻的进行比较得 x-z=3y 4z=-y+w 故y=-4z+w=-13,x=z+3y=-36 即原同余式的解为x==-36==61 mod 97 验算:开始菜单-运行-calc(即打开windows计算器)-alt_CS(查看-科学型),将 (35*(-36) % 97) 复制到其中,得到结果是 -96==1 mod 97. 解二: 引理: 存在x,y使得 ax+by=gcd(a,b), 这里a,b,x,y全为整数。 注:gcd表示最大公约数great common divisor. 我们一般用辗转相除法求得最大公因数。 35与97的最大公因数为 1,下面用辗转相除法。 97=-8+35a, a=3; 35=3+8b, b=4; 8=-1+3c, c=3 由后两式消去除数3,得 8=-1+(35-8b)c, 归并除数8相关的项,得8(1+bc)=-1+35c 再与第一式联立消去除数8相关的项,得(35a-97)(1+bc)=-1+35c 于是35(a+abc-c)-97(1+bc)=-1 与35x==1 mod 97比较,知解 x==-(a+abc-c)=-36 mod 97 此即所求。 解三:(广义)连分数法。这个方法与解二原理相当,利用连分数的性质,过程很简洁。 97=35*3-8 35=4*8+3 8=3*3-1 故 97/35=3-1/(4+1/(3-1/3))=[3; -1:4; 1:3; -1:3] [3; -1:4; 1:3]=3-1/(4+1/3)=3-3/13=36/13 故97*13-35*36=1 即35x==1 mod 97的解为 x==-36 mod 97 注:我定义广义连分数: [Z;A1:B1,A2:B2,...]= Z+A1/(B1+A2/(B2+A3/(B3+...))),其中Z,Ai,Bi为整数,可以为负整数。
求同余式
最新推荐文章于 2021-08-02 10:41:51 发布