今有物不知其數,三三數之剩二五五之剩三七七之剩二,問物幾何?

諶海飛


這個叫中國剩餘定理或者孫子定理,出自我國南北朝時期的著名算術著作中.在大學裡屬於數論裡同餘的知識.我們可以用同餘的知識解決此問題.這句話說的是有一個數,除以3餘數是2,除以5餘數是3,除以7餘數是2,問這個數是幾?

要解決這個問題,首先我們得知道同餘的基本概念,設滿足題目的數為X,則題目的信息可以表示為以下幾個式子

上面構成的同餘式叫做一元線性同餘方程組,由中國剩餘定理可知,因為3、5、7是互質的,則同餘方程有解.其通解是由下方來構造的,首先我們看到中國剩餘定理,如下

我們根據上面這個定理來解決這個同餘方程.滿足題意的最小整數是23.

可以看出,當我們選擇不同的衍數時,就可以得到不同的數字了.當然也可以由得到的數字加或者減最小公倍數的整數倍就可以.上面可能理論性太強,看不懂.但下面是這個問題的通俗解法,可以對照著看一下.

其實,這個問題,明朝數學家程大位在裡用一首歌謠概括了它的解法:

"三人同行七十稀,五樹梅花二十一,七子團圓正半月,除百零五便得知."

其實它就是此問題的通俗解法.

中國剩餘定理是為數不多的享譽世界的定理之一,在密碼學中有非常重要的作用.我是學霸數學,歡迎關注!


學霸數學


題主小時候有沒有聽過一首歌謠:

“三人同行七十稀,五樹梅花二十一,七子團圓正半月,除百零五便得知。”

實際上這個歌謠是一個古老數學題的解法。


韓信點兵

在數學典籍《孫子算經》中,有許多著名的數學問題。其中最有名的是“雞兔同籠”問題。除此之外,另一個流傳很廣的經典問題,被後人稱為“物不知數”問題:

“有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?”


意思是說:有一堆物體不知道有幾個。如果三個三個分組,最後會剩下2個;如果五個五個分組,最後會剩下3個;如果七個七個分組,最後會剩下2個。問這些物體一共有幾個?


後來,人們為了讓這個問題更具體化,就把它改編成“韓信點兵”問題。

有一次戰鬥後,韓信要清點士兵的人數。讓士兵三人一組,就有兩人沒法編組;五人一組,就有三人無法編組;七人一組,就有兩人無法編組。那麼請問這些士兵一共有幾人?


宋朝數學家秦九韶在《數書九章》中對這個問題做出了完整系統的解答。明朝數學家程大位在《算法統宗》中將解法編成易於上口的《孫子歌訣》,就是文初的那首歌謠。


同餘

現在我們一起來解決這個問題。首先我們來了解一下同餘的概念。a和b關於c同餘,意思是說a除以c和b除以c的餘數相同。例如:8÷5=1餘3,3÷5=0餘3,所以8和3關於5同餘,寫作8≡3(mod 5),其中mod讀作“模”。而且,由於3小於5,所以3本身就是3除以5的餘數,因此8≡3(mod 5)也可以理解為8除以5的餘數是3。


這樣,韓信點兵問題就可以表示為數學語言了。有一個數字x,除以3餘2,除以5餘3,除以7餘2, 那麼這個數字是多少?數學寫法是

對於這個問題,最基本的解法是窮舉法,就是把滿足每個條件的數字寫出來,然後找到相同的數字。

  1. 除以3餘數是2的數字有:2、5、8、11、14、17、20、23、26…

  2. 除以5餘數是3 的數字有:3、8、13、18、23、28…

  3. 除以7餘數是2的數字有:2、9、16、23、30…

  4. 我們發現,滿足三個條件的第一個數字是23。所以23是這個問題的一個解。

但是,這個問題的解並不是唯一的。3、5、7彼此互質,它們的最小公倍數是105。也就是說,105除以3、除以5或者除以7都沒有餘數。如果一個數字x是滿足要求的,那麼在x上加上幾個105都不會改變它對3、5、7的餘數。比如,23是滿足要求的,那麼23+105=128也是滿足要求的,23+210=233也是滿足要求的。

所以這個問題最後的解就是23+105n,其中n=0,1,2,3…


歌謠

那麼,程大位在《算法統宗》中的歌謠又是什麼意思呢?其實這個口訣是一個快速的算法,那就是:

  1. 三人同行七十稀:將除以3的餘數乘以70;

  2. 五樹梅花二十一:將除以5的餘數乘以21;

  3. 七子團圓正半月:將除以7的餘數乘以15(半個月);

  4. 除百零五便得知:將以上三個數字相加,最後減去幾個105。


例如在“韓信點兵”問題中,除以3的餘數是2,除以5的餘數是3,除以7的餘數是2,那麼前三句話就是70×2+21×3+15×2=233,233減去105等於128,128減去105=23,那麼23、128、233等就都是這個問題的答案。


這個口訣的證明其實也並不難:

  1. 70這個數字是5和7的倍數,並且除以3餘1,也就是說,任何一個數添加一個70之後,不會改變除以5和7的餘數,但是會在除以3的餘數中多1。這樣如果所求的數字除以3餘2,就應該包含2個70,即70×2。

  2. 21這個數字是3和7的倍數,並且除以5餘1, 也就是說,任何一個數添加了一個21之後不會改變除以3和7的餘數,但是會在除以5的餘數中多1。這樣如果所求的數字除以5餘3, 就應該包含3個21,即21×3。

  3. 15這個數字是3和5的倍數,並且除以7餘1, 也就是說,任何一個數添加了一個15之後不會改變除以3和5的餘數,但是會在除以7的餘數中多1。這樣如果所求的數字除以7餘2, 就應該包含2個15,即15×2。

  4. 將以上三個數字相加得到233,就可以得到一個滿足條件:除以3餘2,除以5餘3,除以7餘2的數字。

  5. 105這個數字是3、5、7的公倍數,因此一個數字加上或者減去105之後,不會改變除以3、5、7的餘數,因此在剛才得到的233上添加或者減去幾個105,都是問題的解。

  6. 最終,通過口訣我們還是可以得到通解:23+105n,其中n=0,1,2,3…


中國剩餘定理

餘數問題是一個重要的數學問題,是計算機密碼學的基石之一。世界著名的數學家歐拉、高斯等人,都曾經研究過這個問題。中國古代的先賢在這方面取得了豐碩的成果。“韓信點兵”問題只是一個例子,這樣的問題有更加普遍和系統化的表示方法。而這個方法,就被世界稱為“中國剩餘定理”,是我國為數不多的獲得世界公認的古代數學成就之一。


李永樂老師


相信每個男人都有過“金戈鐵馬,氣吞萬里如虎”的想象

假如有一天,你穿越到楚漢相爭時期成為韓信......

話說秦朝末年,楚漢相爭。有一次,韓信帶領1500名將士與楚王大將李鋒交戰。苦戰一場,楚軍不敵,敗退回營,漢軍也死傷四五百人,於是,韓信整頓兵馬也返回大本營。

當行至一山坡,忽有後軍來報,說有楚軍騎兵追來。只見遠方塵土飛揚,殺聲震天。漢軍本來已十分疲憊,這時隊伍大譁。韓信兵馬到坡頂,見來敵不足五百騎,便急速點兵迎敵。

他命令士兵3人一排,結果多出2名;接著命令士兵5人一排,結果多出3名;他又命令士兵7人一排,結果又多出2名。

韓信馬上向將士們宣佈:我軍有1073名勇士,敵人不足五百,我們居高臨下,以眾擊寡,一定能打敗敵人。漢軍本來就信服自己的統帥,這一來更認為韓信是“神仙下凡”、“神機妙算”。於是士氣大振。一時間旌旗搖動,鼓聲喧天,漢軍步步進逼,楚軍亂作一團。交戰不久,楚軍大敗而逃。

那麼問題來了,韓信是如何知道將士的人數的呢?假如有一天,你穿越到古代成為韓信,身邊只有一臺裝有EXCEL的電腦,你能夠帶領將士殺出重圍嗎?

我們先把問題翻譯成數學語言:已知一個正整數X,1000

咋一看,用EXCEL似乎辦不到呀,我們先用一個笨方法來解決,窮舉!從1000驗算到1100,不就100個數嘛!

1000=3*333+1,一看就不對,下一個

1001=3*333+2,誒,對了,繼續,1001=5*200+1,不對......

Oh,My God,我佛真主耶穌保佑,這得算到何年何月!可這正是電腦擅長的呀,來看EXCEL是怎麼算的:

解法一

我們現在A列列出1000至1100的數字,然後分別在B,C,D列對3、5、7取餘數,如果餘數分別等於2,3,2就恰好得到了我們的將士人數,

公式為:=MOD($A2,B$1)

驗證公式為:=IF((B2=2)*(C2=3)*(D2=2),"將士總人數為:"&A2,"不符要求")

這樣就求出了我們的將士總人數,借用EXCEL,你也可以帶兵打仗啦!

解法二

有些同學可能會說,這樣求解表格太大了,不夠優雅,我們來個優雅的!在EXCEL中任意單元格輸入以下公式:

="將士總人數為:"&SUMPRODUCT(ROW(1000:1100),(MOD(ROW(1000:1100),3)=2)*(MOD(ROW(1000:1100),5)=3)*(MOD(ROW(1000:1100),7)=2))

是不是超級神奇?這個函數的思路和上面的思路是一致的,都是枚舉法的運用,其計算過程可分為以下幾步:

第一步:ROW(1000:1100):生成1000~1100的數組

第二步:用MOD函數分別對其取餘

第三步:當餘數同時滿足除3餘2,除5餘3,除7餘2時,即得到將士人數

本文涉及的函數主要有:

MOD,求餘函數,語法:MOD(被除數,除數)

IF,條件函數,語法:IF(邏輯條件,事件A,[事件B]),當邏輯條件為真時,返回事件A,反之,返回事件B

SUMPRODUCT,數組相乘再求和,語法:SUMPRODUCT(數組1,[數組2]......)

ROW,返回單元格的行號,語法:ROW(單元格引用)

本文涉及的函數都是基礎函數,結合起來卻有妙用,函數是基礎,算法思維才是根本,理解背後的邏輯,解題易如反掌!

問題延伸

“韓信點兵”問題又被稱為“中國剩餘定理”、“大衍求一術”、“鬼谷算”等,和《九章算術》中的“物不知數”問題為同類問題,屬於現代數論中求解一次同餘式方程組問題,

秦九韶所發明的“大衍求一術”,即現代數論中一次同餘式組解法,是中世紀世界數學的最高成就,比西方1801年著名數學家高斯(Gauss,1777—1855年)建立的同餘理論早554年,被西方稱為“中國剩餘定理”。秦九韶不僅為中國贏得無上榮譽,也為世界數學作出了傑出貢獻。若您有興趣,可作進一步瞭解!

歡迎留言探討

我是 EXCEL精選技巧,每天帶您學習一個EXCEL精選技巧,實用,乾貨更有趣!


Excel精選技巧


首先可設: A=3×5×7=105,B=3×5=15,C=3×7=21,D=5×7=35。

15為3、5整除而為7除餘1,故配以係數2,2B=30為7除餘2;

21為3、7整除而為5除餘1,故配以係數3,3C=63為5除餘3;

35為5、7整除而為3除餘2。

從而:2B+3C+D=128 必是為3除餘2,為5除餘3,為7除餘2的數。

但這不是滿足要求的最小自然數。

容易得知:128-A=128-105=23也必然是滿足要求的自然數,並且是其中最小的。

事實上,所有自然數x=23+105k都滿足要求。

以上就是根據中國剩餘定理的標準解法;屬於初等數論裡的內容。真正能理解的人會發覺非常妙。這是數學裡最優美的一個基礎定理,不在於其公式的形式而在於思想。若用公式化表述是很繁瑣的,這裡就不贅述了。

化用中國剩餘定理的基本精神,具體到這道題,還可以有如下的簡便算法:

三三數之剩二的最小自然數是5;

令5加上一個最小的3倍數直至為5除剩3,於是得8;

令8再加上一個最小15倍數直至為7除剩2,於是得23。

這個解法才是正確打開的小學算術解,也是絕大多數大人也掌握不好的小學算法。


建章看世界


這個數是21(5m+1)+2,m為自然數,即這個數最小為23。

雖然沒學過孫子定理和中國剩餘定理,但是用我那微薄的數學基礎也能解呀。

解題思路:

根據題意:三三餘二,五五餘三,七七餘二,

說明這個數減去2後是3、7的倍數,即21的倍數,設這個數為x,則:

x=21n+2,式中n≥1

又因為這個數除以5餘3,所以這個數的尾數為3或8

也就是說21n+2的尾數為3或8;

當n為1、11、21、31……可表示為10m+1(m為自然數),尾數為3,滿足條件;

當n為6、16、26、36……可表示為10m+6即5m+1(m為自然數),尾數為8,也滿足條件

綜上,n為5m+1(m為自然數)時,滿足尾數為3或8的條件。

即這個數為21(5m+1)+2,m為自然數。



小黑小黑Luo


感謝邀請,頭條君怎麼知道我喜歡數學呢?就憑我零星的碎片化記憶試著解答下:

t=3x+2=5y+3=7z+2

則3x=7z=t-2

也就是說這個t-2是21的倍數,我們就可以假設t-2為21 42 63 84 105 126等,

而且這個t-2還要是5的倍數+1,所以呢t-2=21,126......21的5n+1倍都是合適的數值。

那麼這個t-2=21(5n+1)

則t=21(5n+1)+2


生活中有你更美


我也不知道怎麼回事,可以通過列舉法得出第一個數23,然後3/5/7的最小公倍數是105,可以把105看成公差(我也不知道咋回事),所以通項公式是y=105x+23,具體我也不知道怎麼回事,你可以問問老師。


小潘隨手拍


這個是韓信暗點兵的算法。相傳韓信布兵打仗,回來後兵卒報剩餘人數就是用數三餘幾,數五餘幾,數七餘幾彙報。這是有口訣的。口訣如下:

數三剩一念七十,五馬分屍二十一,夫妻團圓整半月,加減百五是正時。意思是說,當三三數餘一時,這個數計作七十。當五五數餘一時,這個數計作二十一,當七七數餘一時,這個數計作十五。然後用各自的計數乘以各自的餘數得到的積相加的總和數,減去一百零五便是正數了。解釋起來麻煩。以上題為例:三三剩二,即70X2=140,五五剩三,即21x3=63。七七剩二,即15X2=30。140十63十30一105一105=23。23便是上題的答案。為什麼要減兩次105呢?是因為求的最小值😊😊。


夜數繁星


太簡單,三的餘數乘5*725的積乘2加5的餘數乘3與7的積21加7的餘數成3和5的積15的和減去3.5.的積105的倍數,為什麼不乘35呢?因為35除三得70除3餘1...21除5餘1.15除7餘1正好是本系數的整數倍,可以推廣到其他三個互質數。講得不明白請原諒。


135aaa


題:除3餘2,除5餘3,除7餘2。

除3或7都餘2,且3和7的最小公倍數為21,所以此數等於21a+2(a為自然數),除5餘3,則此數也等於5b+3。所以21a+2=5b+3☞☞a=5(b-4a)+1☞☞令k=b-4a則a=5k+1☞☞n(此題所求數之值)=105k+23☞☞b=21k+4

最終答案:n=105k+23(k為任意自然數)

最小數為23。


分享到:


相關文章: