中國剩餘定理

來源:互聯網
上載者:User

標籤:沒有   同餘方程   splay   line   lcm   計算   play   精簡   歐幾裡得演算法   

中國剩餘定理問題引入

求出一個數,使得這個數除 \(3\) 餘 \(2\), 除 \(5\) 餘 \(3\), 除 \(7\) 餘 \(2\)。

問題求解

下面我們依照中國剩餘定理的演算法流程對這個問題進行求解,並且逐步解釋其原理

對於這個問題,我們有一個比較簡單的方法是:先找出每一個方程的解,再通過加其模數使之與其他方程的解的值相等
然而這樣的想法是很難進行求解的,我們引入如下兩個性質:

性質一:\((a + b) \bmod p = a \bmod p + b \bmod p\)
性質二:\((a * b) \bmod p = (a \bmod p) * b\)

性質一告訴我們:如果有一個數除 \(5\) 餘 \(3\),還有任意兩個數被 \(5\) 整除,則這三個數的和滿足除 \(5\) 餘 \(3\)
那麼,我們構造出三個數 \(a, b, c\) 分別滿足這三個方程,並且能被其它兩個數整除,那麼\(a + b + c\)就是這個方程組的一個解

因此,這個問題被我們轉化成了一個簡單的問題:求一個 \(x\),使得\(x \bmod 3 = 0, x \bmod 7 = 0\) 並且 \(x \bmod 5 = 3\)
顯然,x會是 \(3 * 7 = 21\) 的倍數,那我們直接考慮 \((k * 21) \bmod 5 = 3\) 就行了。由性質二可以得知,我們只需將 \(21 \bmod 5\) 擴大 \((5 \times d) / (21 \bmod 5)\) 倍就行了,這個值就是 \(k\) 的值

上面這個問題(以本體為例)相等於求解一個 \(x\) 使得 \(1 * x = 3 \pmod 5\) 這個問題可以通過拓展歐幾裡得演算法求解

以本體為例,我們寫出計算過程。

  1. 求出最小公倍數:\(lcm = 3 * 5 * 7 = 105\)
  2. 求出個數對應基礎數
    對於第一個條件, 我們有\(105 / 3 = 35\), \(35 \bmod 3 = 2\) 滿足,則基礎數為 \(35\)
    對於第二個條件, 我們有\(105 / 5 = 21\), \(21 \bmod 5 = 1\) 不滿足,將這個式子乘 \(3\),使得 \(63 \bmod 5 = 3\) 則基礎數為 \(63\)
    對於第三個條件, 我們有\(105 / 7 = 15\), \(15 \bmod 7 = 1\) 不滿足,與上一個步驟相同,乘 \(2\) 得到基礎數為 \(30\)
    把基礎數相加: \(35 + 63 + 30 = 128\)
  3. 減去最小公倍數(在比最小公倍數大的情況下)
    得到\(x = 128 - 105 = 23\)
數學模型

設 \(m_1, m_2, \cdots, m_n\) 是兩兩互質的整數,\(m = \prod_{i = 1}^nm_i, M_i = m / m_i\) ,\(t_i\) 是線性同餘方程 \(M_it_i = 1 \pmod m_i\) 的一個解,對於任意的 \(n\) 個數 \(a_1, a_2, \cdots, a_n\), 方程組 \[x = a_i \pmod m_i\]有整數解,解為 \(x = \sum_{i = 1}^na_iM_it_i\)

證明

因為 \(M_i = m / m_i\) 是除 \(m_i\) 意外所有數的倍數,所以 \(\forall k \not= i, a_iM_it_i = 0 \pmod m_k\), 又因為 \(a_iM_it_i = a_i \pmod m_i\) 所以帶入 \(x\), 原方程成立

代碼

還沒有精簡

中國剩餘定理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.