前言
- 作為數論四大定理之一,中國剩余定理(又名孫子定理)的重要性不言而喻,
到底還是自家的東西。 - 其主要用於求解一元線性同余方程組。
- 通俗來講,就是我們從小聽到大的問題:“有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?”
明明一點也不通俗。用白話文來講就是有一堆東西,三個三個地數多兩個,五個五個地數多三個,七個七個地數多兩個,問這堆東西一共有多少個。變成小學奧數就是什么分饅頭,什么坐公交車之類的。
Description:
- 設 \(m_1,m_2,\cdots,m_n\) 是兩兩互質的整數,\(m=\prod_{i=1}^{n}m_i\) ,\(M_i=m/m_i\) ,\(t_i\) 是線性同余方程 \(M_it_i\equiv 1\:(mod\:m_i)\) 的一個解(即 \(M_i\) 在模 \(m_i\) 意義下的逆元)。則對於任意的 \(n\) 個整數 \(a_1,a_2,\cdots,a_n\) ,同余方程組
\[\left\{\begin{matrix}x\equiv a_1\:&(mod\:m_1)\\ x\equiv a_2\:&(mod\:m_2)\\ \vdots&\\x\equiv a_n\:&(mod\:m_n)\\ \end{matrix}\right. \]有整數解為 \(ans=\sum_{i=1}^{n}a_iM_it_i\)。
證明:
- 因為 \(M_i=m/m_i\) 是除 \(m_i\) 之外所有模數的倍數,所以 \(\forall k\neq i,a_iM_it_i\equiv 0\:(mod\:m_k)\) 。
- 又因為 \(M_it_i\equiv 1\:(mod\:m_i)\) ,所以 \(a_iM_it_i\equiv a_i\:(mod\:m_i)\) 。
- 綜上所述,將公式帶入原方程組即能夠滿足所有的同余式。
證畢。
后話
- \(To\:be\:frank\),中國剩余定理其實挺簡單的,而且也比較好感性理解,最重要的是,有了這個定理,
再也不用擔心不會寫小學奧數了。 - 但是不得不說,中國剩余定理具有一定的局限性,就是其必須要求所有的模數都互質,如果不互質的話則不能運用中國剩余定理解線性同余方程組(從逆元的角度理解也可以),但是在一般的題目都不滿足互質這個性質。
- 那么這個時候
我們應該怎么辦?很簡單,用擴展中國剩余定理 \((excrt)\) 求解就好,OI人,OI魂,OI都是人上人。 - 說是擴展中國剩余定理,但是卻和中國剩余定理沒有半毛錢關系,頂多也就算是求解的類型一樣而已。
- 其具體思路就是將兩個線性同余方程組合並成一個,然后不斷兩兩合並,最后得解。因為不再本博客的討論范圍,在這里就不再贅述,感興趣請自行百度。
2021年1月16日
——pycr
