• 一次同余方程与大衍求一术


    一次同余方程

    前面已经提到,剩余类可以看作一个特殊的“数”,剩余类环可以看作定义了剩余类加法和乘法的“数集”.类似于实数集情形,我们也可以在剩余类环中解方程或方程组。

    例如,在模6的剩余类环中解方程[5][x]=3,这里[x]是模6的剩余类环中的未知剩余类,注意到

    $$[5][x] = [3]Leftrightarrow [5x]=[3]Leftrightarrow 6|5x-3 Leftrightarrow 5xequiv 3(mod 6)$$

    通常,我们把含有未知数的同余式叫做同余方程,方程$5xequiv 3(mod 6)$是一类形式最简单的同余方程,叫做一次同余方程,形式为

    $$axequiv b(mod n)$$

    注意,同余方程的解并不是一个数,而是模n下的一个剩余类.

    对于一次同余方程,我们关心下面几个问题:

    1. $axequiv b(mod n)$在什么情况下有解?
    2. 有几个解?
    3. 有解时如何求解?

    $axequiv b(mod n) Rightarrow ax+nt=b$,由裴蜀不等式知,$ax+nt=b$有解的充分必要条件是$(a, n) | b$,且解的个数为,.

    因此,得到如下结论:

    一次同余方程$axequiv b(mod n)$有解,则$(a, n) | b$,反过来,当$(a, m)|b$时,一次同余方程$axequiv b(mod n)$恰有$(a, n)$个解.

    下面看一个一次同余方程的例子:

     例1.解一次同余方程9x≡6(mod 15).

    解:注意到(9, 15)=3,且3 | 6,故同余方程有3个解,原同余方程可简化为3x≡2(mod 5),由于3x2≡1(mod 5),故x≡2x2=4(mod 5)。所以同余方程的3个解分别为x≡4+0x5=4(mod 15),x≡4+1x5=9(mod 15),x≡4+2x5=14(mod 15).

    大衍求一术

    大衍求一术是解一次同余方程ax≡1(mod n),其中a为正整数,a<n且(a, n)=1的一种算法程序.

    用现代数学语言,算法步骤可表示为:

    先规定$k_0 = 0,k_1=1,r_1=a$

    对$n,a$做带余除法,$n=a q_2+r_2$,记$k_2 = k_0 - q_2 k_1$;

    对$a,r_2$做带余除法,$a=r_2 q_3+r_3$,记$k_3 = k_1 - q_3 k_2$;

    对$r_2,r_3$做带余除法,$r_2=r_3 q_4+r_4$,记$k_4 = k_2 - q_4 k_3$;

    对$r_3,r_4$做带余除法,$r_3=r_2 q_5+r_5$,记$k_5 = k_3 - q_5 k_4$;

    ......

    重复这种运算,直到余数$r_n=1$,那么最后所得的$k_n = k_{n-2} - q_n k_{n-1}$满足$ak_n equiv 1 (mod n)$.于是$x equiv a_k (mod n)$就是解。

     下面考察大衍求一术的算法原理:

    $r_1=aequiv ak_1(mod n)\r_2=n-r_1 q_2 equiv a(-q_2 k_1)=ak_2(mod   n)\r_3=r_1-r_2 q_3 equiv a(k_1 - q_3 k_2) = ak_3(mod   n)\r_4=r_2-r_3 q_4 equiv a(k_2 - q_4 k_3) = ak_4(mod n)$

    而$r_n=1$,故$ak_nequiv 1(mod n)$.这就是大衍求一法的原理。

    例2.解同余方程33x≡1(mod 74).

    解:显然(33, 74)=1

    由于74=33x2 + 8,33=8x4 + 1,故$q_2=2,q_3=4,r_3=1$,依次可计算出

    $$k_2=-2 imes 1 = -2,k_3= 1-4 imes (-2)=9.$$

    因此原方程的解为

    $$xequiv 9(mod 74)$$

  • 相关阅读:
    大话设计模式学习笔记简单工厂 工厂 抽象工厂
    910月总序(update 1)
    虚表思考再探虚表布局
    深入浅出 (代码+图示)递归反转一个栈 lp 专题讲解
    算法导论笔记 二叉查找树问题
    叹 尽然把vs2008 crash!!
    关于二叉查找树的讨论+ 我的误解
    算法情景分析 二叉排序树 前驱+后缀 测试用列
    iBatis.NET中使用时间的注意事项
    JDK和JRE官方下载地址
  • 原文地址:https://www.cnblogs.com/lfri/p/10446332.html
Copyright © 2020-2023  润新知