1. 程式人生 > >中國剩餘定理與線性同餘方程組求解

中國剩餘定理與線性同餘方程組求解

線性同餘方程組的形式

實際上一元一次線性同餘方程組,形式如下:

{xr0(modm0)xr1(modm1)
包含有具體數字的線性同餘方程組問題最早見於《孫子算經》(成書於約南北朝時期,因此與《孫子兵法》的孫子應該不是同一個孫子),該書也給出了該具體問題的解法。因此求解線性同餘方程組有關的定理又稱作孫子定理。但實際上《孫子算經》並未給出證明及一般性解法。最早的系統性論述應該是南宋時期秦九韶在《算術九章》中提出的“大衍求一術”。因此最後有關該問題的理論被稱作中國剩餘定理。

中國剩餘定理

如果m0,m1,兩兩互質,則方程有唯一解,在模

imi的意義下。解法如下:
M=imi,且Mi=M/mi
對每一個Mi求出在模mi意義下的逆元,記作xi
即滿足Mixi1(modmi)
則原方程組的解為x=irixiMimodM

線性同餘方程組的一般解法

使用中國剩餘定理理論上可以很方便的解出模數兩兩互質的方程組。對於不互質的情況可以使用下面的一般解法。

單獨的線性同餘方程求解

考慮單獨的一個線性同餘方程,已知a,b,m,求x滿足如下方程:

axb(modm)
原方程等價於:
ax+my=b

根據裴蜀定理,上述方程有解的充要條件是bgcd(a,m)的整數倍。利用擴充套件的擴充套件的歐幾里德演算法可以很容易求得x0使得:
ax0+my0=gcd(a,m)
於是很容易得到x的一個特解為:
x=x0bgcd
顯然x有無窮多解,如果考慮在模m的意義下,x也有gcd個不同的解,且成等差數列,公差為m/gcd。因此很容易求得最小正整數解為:
x=x0bgcdmodmgcd
考慮方程