一次同餘方程與大衍求一術

2022-05-02 08:18:06 字數 1932 閱讀 8831

前面已經提到,剩餘類可以看作乙個特殊的「數」,剩餘類環可以看作定義了剩餘類加法和乘法的「數集」.類似於實數集情形,我們也可以在剩餘類環中解方程或方程組。

例如,在模6的剩餘類環中解方程[5][x]=3,這裡[x]是模6的剩餘類環中的未知剩餘類,注意到

$$[5][x] = [3]\leftrightarrow [5x]=[3]\leftrightarrow 6|5x-3 \leftrightarrow 5x\equiv 3(mod \ 6)$$

通常,我們把含有未知數的同余式叫做同餘方程,方程$5x\equiv 3(mod \ 6)$是一類形式最簡單的同餘方程,叫做一次同餘方程,形式為

$$ax\equiv b(mod \ n)$$

注意,同餘方程的解並不是乙個數,而是模n下的乙個剩餘類.

對於一次同餘方程,我們關心下面幾個問題:

$ax\equiv b(mod \ n)$在什麼情況下有解?

有幾個解?

有解時如何求解?

$ax\equiv b(mod \ n) \ \rightarrow ax+nt=b$,由裴蜀不等式知,$ax+nt=b$有解的充分必要條件是$(a, n) | b$,且解的個數為,.

因此,得到如下結論:

一次同餘方程$ax\equiv b(mod \ n)$有解,則$(a,\ n) | b$,反過來,當$(a, \ m)|b$時,一次同餘方程$ax\equiv 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用現代數學語言,演算法步驟可表示為:

先規定$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_ - q_n k_$滿足$ak_n \equiv 1 (mod \ n)$.於是$x \equiv a_k (mod \ n)$就是解。

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

$r_1=a\equiv 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_n\equiv 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 \times 1 = -2,k_3= 1-4 \times (-2)=9.$$

因此原方程的解為

$$x\equiv 9(mod \ 74)$$

一元線性同餘方程組

由若干個一元線性同餘方程組構成的方程組,叫做一元線同餘方程組。我們可以將其統一劃成a x b mod m 的形式,這樣有利於演算法的實現。既然是對同餘方程組求解,那麼必然得先會對同餘方程求解,如果對同餘方程求解仍有疑問,可以參考 對於同於方程組的求解,其實質過程就是對於其中的同餘方程依次進行兩兩合併...

多元一次方程

變數 矩陣 c1,cn 矩陣尺寸 1 n 引數 矩陣 11,nn 矩陣尺寸 n n 結果 矩陣 r1,rn 矩陣尺寸 n 1 求變數cn c1 cn 1類同處理 表示式cn可以訪問 選擇 編碼服務 進行獲取,上僅提供1 9的計算表示式。資料反演 疊加聲音的分離等。因分子分母內容相仿,僅表達分母部份即...

一般方程與引數方程求直線交點

一 乙個例子 如上圖,有兩條直線,設l1,l2。l1上有兩點 0,0 10,10 l2上有兩點 0,10 10,0 它們的交點是 5,5 求解交點有兩種效率較高的常用方法,一般方程法與引數方程法,以下將分別描述其原理及實現。二 一般方程法 直線的一般方程為f x ax by c 0。既然我們已經知道...