中國剩餘定理,剩餘定理

來源:互聯網
上載者:User

中國剩餘定理,剩餘定理

中國剩餘定理介紹

 在《孫子算經》中有這樣一個問題:“今有物不知其數,三三數之剩二(除以3餘2),五五數之剩三(除以5餘3),七七數之剩二(除以7餘2),問物幾何?”這個問題稱為“孫子問題”,該問題的一般解法國際上稱為“中國剩餘定理”。具體解法分三步:


分析:


我們將“孫子問題”拆分成幾個簡單的小問題,從零開始,試圖揣測古人是如何推匯出這個解法的。

首先,我們假設n1是滿足除以3餘2的一個數,比如2,5,8等等,也就是滿足3*k+2(k>=0)的一個任意數。同樣,我們假設n2是滿足除以5餘3的一個數,n3是滿足除以7餘2的一個數。

有了前面的假設,我們先從n1這個角度出發,已知n1滿足除以3餘2,能不能使得 n1+n2 的和仍然滿足除以3餘2?進而使得n1+n2+n3的和仍然滿足除以3餘2?

這就牽涉到一個最基本數學定理,如果有a%b=c,則有(a+kb)%b=c(k為非零整數),換句話說,如果一個除法運算的餘數為c,那麼被除數與k倍的除數相加(或相減)的和(差)再與除數相除,餘數不變。這個是很好證明的。

以此定理為依據,如果n2是3的倍數,n1+n2就依然滿足除以3餘2。同理,如果n3也是3的倍數,那麼n1+n2+n3的和就滿足除以3餘2。這是從n1的角度考慮的,再從n2,n3的角度出發,我們可推匯出以下三點:

  1. 為使n1+n2+n3的和滿足除以3餘2,n2和n3必須是3的倍數。
  2. 為使n1+n2+n3的和滿足除以5餘3,n1和n3必須是5的倍數。
  3. 為使n1+n2+n3的和滿足除以7餘2,n1和n2必須是7的倍數。

    因此,為使n1+n2+n3的和作為“孫子問題”的一個最終解,需滿足:

  1. n1除以3餘2,且是5和7的公倍數。
  2. n2除以5餘3,且是3和7的公倍數。
  3. n3除以7餘2,且是3和5的公倍數。

      所以,孫子問題解法的本質是從5和7的公倍數中找一個除以3餘2的數n1,從3和7的公倍數中找一個除以5餘3的數n2,從3和5的公倍數中找一個除以7餘2的數n3,再將三個數相加得到解。在求n1,n2,n3時又用了一個小技巧,以n1為例,並非從5和7的公倍數中直接找一個除以3餘2的數,而是先找一個除以3餘1的數,再乘以2。

     這裡又有一個數學公式,如果a%b=c,那麼(a*k)%b=a%b+a%b+…+a%b=c+c+…+c=kc(k>0),也就是說,如果一個除法的餘數為c,那麼被除數的k倍與除數相除的餘數為kc。展開式中已證明。

     最後,我們還要清楚一點,n1+n2+n3隻是問題的一個解,並不是最小的解。如何得到最小解?我們只需要從中最大限度的減掉掉3,5,7的公倍數105即可。道理就是前面講過的定理“如果a%b=c,則有(a-kb)%b=c”。所以(n1+n2+n3)%105就是最終的最小解。







中國剩餘定理

zhidao.baidu.com/question/18353561.html
你看一下吧
孫子算經》中給出這類問題的解法:“三三數之剩二,則置一百四十;五五數之剩三,置六十三;七七數之剩二,置三十;並之得二百三十三,以二百一十減之,即得。凡三三數之剩一,則置七十;五五數之剩一,則置二十一;七七數之剩一,則置十五,一百六以上,以一百五減之,即得。”用現代語言說明這個解法就是:

首先找出能被5與7整除而被3除餘1的數70,被3與7整除而被5除餘1的數21,被3與5整除而被7除餘1的數15。

所求數被3除餘2,則取數70×2=140,140是被5與7整除而被3除餘2的數。

所求數被5除餘3,則取數21×3=63,63是被3與7整除而被5除餘3的數。

所求數被7除餘2,則取數15×2=30,30是被3與5整除而被7除餘2的數。

又,140+63+30=233,由於63與30都能被3整除,故233與140這兩數被3除的餘數相同,都是餘2,同理233與63這兩數被5除的餘數相同,都是3,233與30被7除的餘數相同,都是2。所以233是滿足題目要求的一個數。

而3、5、7的最小公倍數是105,故233加減105的整數倍後被3、5、7除的餘數不會變,從而所得的數都能滿足題目的要求。由於所求僅是一小隊士兵的人數,這意味著人數不超過100,所以用233減去105的2倍得23即是所求。
 
中國剩餘定理

zhidao.baidu.com/question/18353561.html
你看一下吧
孫子算經》中給出這類問題的解法:“三三數之剩二,則置一百四十;五五數之剩三,置六十三;七七數之剩二,置三十;並之得二百三十三,以二百一十減之,即得。凡三三數之剩一,則置七十;五五數之剩一,則置二十一;七七數之剩一,則置十五,一百六以上,以一百五減之,即得。”用現代語言說明這個解法就是:

首先找出能被5與7整除而被3除餘1的數70,被3與7整除而被5除餘1的數21,被3與5整除而被7除餘1的數15。

所求數被3除餘2,則取數70×2=140,140是被5與7整除而被3除餘2的數。

所求數被5除餘3,則取數21×3=63,63是被3與7整除而被5除餘3的數。

所求數被7除餘2,則取數15×2=30,30是被3與5整除而被7除餘2的數。

又,140+63+30=233,由於63與30都能被3整除,故233與140這兩數被3除的餘數相同,都是餘2,同理233與63這兩數被5除的餘數相同,都是3,233與30被7除的餘數相同,都是2。所以233是滿足題目要求的一個數。

而3、5、7的最小公倍數是105,故233加減105的整數倍後被3、5、7除的餘數不會變,從而所得的數都能滿足題目的要求。由於所求僅是一小隊士兵的人數,這意味著人數不超過100,所以用233減去105的2倍得23即是所求。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.