目錄q:中國剩餘定理很難嗎?
a:就是個求解同餘方程組的東東
(話說 \(oi\) 只要能理解應用就好吧,證明是不是可以先放一放)因為我太菜了
update 2021/04/11:終於理解中國剩餘定理,還是tcl
《孫子算經》中有這麼一道題:
「今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?」翻譯一下就是:已知乙個正整數模3餘2,模5餘3,模7餘2,求這個數是幾?
寫成數學語言,就是求解同餘方程組
\[\begin
& x \equiv 2 \pmod 3 \\
& x \equiv 3 \pmod 5 \\
& x \equiv 5 \pmod 7 \\
\end
\]乍一看,這不很簡單蠻,隨便帶近兩個數試試不就行了
但是你現在可以直接觀察並且資料小,如果資料大了呢,同餘方程組不只是三個呢?
這就需要我們的「中國剩餘定理」登場了
設正整數 \(m_1, m_2, m_3, ···,m_k\) 兩兩互素,則同餘方程組
\[\begin
& x \equiv a_1 \pmod \\
& x \equiv a_2 \pmod \\
& x \equiv a_3 \pmod \\
& ··· \\
& x \equiv a_k \pmod
\end
\]
有整數解。並且在模 \(m = m_1 \times m_2 \times ··· \times m_k\) 下解是唯一的,解為(求解模數不互質情況下的同餘方程組)\[x \equiv (a_1 m_1 m_1^ + a_2 m_2 m_2^ + ··· + a_k m_k m_k^) mod \ \ m
\]其中 \(m_i = m / m_i\) , 而 \(m_i^\) 為 \(m_i\) 模 \(m_i\) 的逆元
普通中國剩餘定理要求所有的 \(m_i\) 互素,那麼如果不互素呢?怎麼求解同餘方程組?
這種情況可以考慮兩兩合併,假設合併如下兩個方程:
\[x = a_1 + m_1 x_1
\]\[x = a_2 + m_2 x_2
\]那麼得到:
\[a_1 + m_1 x_1 = a_2 + m_2 x_2 \rightarrow m_1 x_1 + m_2 x_2 = a_2 -
a_1\]
我們需要求出乙個最小的 \(x\) 使它滿足:
\[x = a_1 + m_1 x_1 = a_2 + m_2 x_2
\]那麼 \(x_1\) 和 \(x_2\) 的值要僅可能的小,於是我們又擴充套件歐幾里得演算法求出 \(x_1\) 的最小整數解,將它代回 \(a_1 + m_1 x_1\) ,得到 \(x\) 的乙個特解 \(x^\) ,當然也是最小整數解。
所以 \(x\) 的通解一定是 \(x^\) 加上 \(lcm(m_1,m_2) \times k\) 這樣才能保證 \(x\) 模 \(m_1\) 和 \(m_2\) 的餘數是 \(a_1\) 和 \(a_2\) 。由此,我們把這個 \(x^\) 當做新的方程的餘數,把 \(lcm(m_1,m_2) \times k\) 當做新的方程的模數。(這一段是關鍵)
合併完成:
\[x \equiv x^ \pmod
\]複雜度***,碼量短小精湛!
詳見這篇博文
想學中國剩餘定理很久了,第一次聽說是在夏令營的時候,看到同宿舍某大佬的課程表上有這個名詞,感覺挺高大上的,前幾天忙著期中考咕咕咕了,如今終於有機會更一篇關於它的筆記了,開心》-
中國剩餘定理 擴充套件中國剩餘定理
中國剩餘定理 對於求解一元不定方程組 的一種演算法叫做中國剩餘定理。又名孫子定理。其中m1,m2,m3.mk 為兩兩互質的整數,求x的最小非負整數解 令m mi 1 i n m是所有mi的最小公倍數 ti為同餘方程 ti m mi 1 mod mi 的最小非負整數解 則有乙個解 x ai m mi ...
中國剩餘定理
用來求解模數互質的同餘方程組,即求乙個數x,使得x除以n個模數分別為a1,a2,a3 an 注意這裡的除數必須要兩兩互質 得到n個餘數r1,r2,r3 rk。求這個數x.中國剩餘定理求的就是這個數x。求解過程 1 令p a1 s2 a3 an,ki p ai i從1到n 2 我們要找到這樣的數 di...
中國剩餘定理
中國剩餘定理介紹 在 孫子算經 中有這樣乙個問題 今有物不知其數,三三數之剩二 除以3餘2 五五數之剩三 除以5餘3 七七數之剩二 除以7餘2 問物幾何?這個問題稱為 孫子問題 該問題的一般解法國際上稱為 中國剩餘定理 具體解法分三步 找出三個數 從3和5的公倍數中找出被7除餘1的最小數15,從3和...