古代數學趣題及答案? 用現代數學方法解古題“物不知數”,下面我們就來聊聊關于古代數學趣題及答案?接下來我們就一起去了解一下吧!
用現代數學方法解古題“物不知數”
2019年8月20日星期二
(一)古題原文:
“
今有物,不知其數。三三數之,剩二;五五數之,剩三;七七數之,剩二。問:物幾何?
”
記載于距今約一千五百年前(公元四、五世紀)的中國古代重要的數學著作《孫子算經》下卷第28題,“物不知數問題”也叫“孫子問題”。
《孫子算經》(本文圖片均來自網絡)
譯文:
“
現有一些物品,不知道有多少個。如果三個三個地數,會剩下2個;五個五個地數,會剩下3個;七個七個地數,也會剩下2個。請問:這些物品的數量至少是多少個?
”
數學化:
設此物之數為:x
則有:
x≡2(mod 3)或x÷3=q1……2,或x=3×q1+2,q1∈Z(整數)
x≡3(mod 5)或x÷5=q2……3,或x=5×q2+3,q2∈Z(整數)
x≡2(mod 7)或x÷7=q3……2,或x=7×q3+2,q3∈Z(整數)
更為通用的寫法是黑體部分。“x≡2(mod 3)”讀作:x同餘2模3,表示“除以3(或以3為模)時,x和2具有同餘關系”。這個式子叫做“一次同餘方程”,一次同餘方程多于一個時,叫做“一次同餘方程組”。下文中将使用這種寫法,務必使其不要成為閱讀障礙。
(重要程度★★★★★)
(二)古解明代著名的大數學家程大位,在他所著的《算法統宗》中,将“孫子問題”的解法編成了歌訣,名曰《孫子歌》:
“
三人同行七十稀,
五樹梅花廿一枝;
七子團圓正半月,
除百零五便得知。
”
程大位
《算法統宗》
歌訣中的“廿”,讀音與“念”音相同。“廿”即二十的意思。
歌訣中的每一句話,都指出了一步解題方法:
“三(3)人同行七十(70)稀”:是說除以3所得的餘數,要乘以70,即:2×70;
“五(5)樹梅花廿一(21)枝”:是說除以5所得的餘數,要乘以21,即:3×21;
“七(7)子團圓正半月(15)”:是說除以7所得的餘數,要乘以15,即:2×15;
“除百零五(105)便得知”:是說要把上面所乘得的三個數相加,加得的和如果大于105,便應減去105,或者減去105的倍數。
計算過程如下:
2×70 3×21 2×15=140 63 30=233
233-105-105=23
(三)今解或許您和我一樣,初見“古解”,一臉懵懂,不知其所以然。
下面給出較之《孫子歌》更為通用的解法,可以适用于除數為包含但不限于{3,5,7}的更一般的“物不知數問題”。
為了降低難度,不再讨論“k個一次同餘方程組”的解法,隻讨論“3個一次同餘方程組”的解法,其方法可以遞推,進而得到更一般的解法。
式①:
設有3個一次同餘方程組如下:
x≡b1(mod m1)
x≡b2(mod m2)
x≡b3(mod m3)
其中:除數{m1,m2,m3}兩兩互素,即:(m1,m2)=1,(m1,m3)=1,(m2,m3)=1;對應餘數小于除數,即:b1<m1,b2<m2,b3<m3。
若令:m1=3、m2=5、m3=7,b1=2、b2=3、b3=2,則可得文首古題。其中:(3,5)=1,(3,7)=1,(5,7)=1;2<3,3<5,2<7。
“除數兩兩互素”是重要的前提條件,否則,沒有“漂亮的通解”,這是後話,本文不表。
預備知識:
(1)若a、b∈Z,且(a,b)=1,則a與b互素。
即:兩個整數的最大公因數等于1時,這兩個整數互素。
(2)若a、b、c∈Z,且(a,b)=1、(a,c)=1,則(a,bc)=1。
即:若整數a與整數b互素,且整數a與整數c互素,則整數a與整數b、c的積互素。
(3)若a、b∈Z,且(a,b)=1,則存在u、v∈Z,使得:ua+vb=1。
這個定理很重要,它将兩個整數的最大公因數表示成了這兩個整數的線性組合,可以用具體的算式表示或計算了。
預備知識(1)來源于“互素”的定義,本文并不打算給出(2)、(3)的證明,請參閱《高等代數》或《數論》的相關基礎知識。
《高等代數》
《數論》
式②:
由{m1,m2,m3}兩兩互素及預備知識(1)、(2),可得:
(m1,m2m3)=1
(m2,m1m3)=1
(m3,m1m2)=1
式③:
由預備知識(3),可得:
u1m1+v1(m2m3)=1
u2m2+v2(m1m3)=1
u3m3+v3(m1m2)=1
式④:
将式③對應模m1、m2、m3,可得:
v1(m2m3)≡1(mod m1)
v2(m1m3)≡1(mod m2)
v3(m1m2)≡1(mod m3)
什麼意思?
以式③中第1式為例:由于u1m1+v1(m2m3)=1,所以u1m1+v1(m2m3)除以m1餘數為1;左加數u1m1是m1的倍數,除以m1餘數為0;故而右加數v1(m2m3)除以m1的餘數為1。第2、3式類同。
式⑤:
由于b1<m1,b2<m2,b3<m3,将式④中每個式子兩端依次乘以b1、b2、b3,仍然對模m1、m2、m3保持同餘關系,可得:
v1(m2m3)b1≡b1(mod m1)
v2(m1m3)b2≡b2(mod m2)
v3(m1m2)b3≡b3(mod m3)
什麼意思?
舉個例子:
7≡1(mod 3)
即:7除以3餘1
那麼,7×2=14除以3則餘1×2=2,即:
14≡2(mod 3)
但兩端不能乘以大于或等于除數3的倍數。
式⑥:
構造x的一個特解:
x=v1(m2m3)b1+v2(m1m3)b2+v3(m1m2)b3
式⑦:
擴充為x的通解:
x=v1(m2m3)b1+v2(m1m3)b2+v3(m1m2)b3+km1m2m3
其中:k∈Z
(重要程度★★★★★)
将文首古題中的參數:m1=3、m2=5、m3=7,b1=2、b2=3、b3=2,代入式⑦得:
x=v1×(5×7)×2+v2×(3×7)×3+v3×(3×5)×2+k×3×5×7
=70v1+63v2+30v3+105k
也許,聰明的您已經發現:我們将求x的問題轉化成了求參數v1、v2、v3的問題。将1個未知數變成3個未知數,似乎讓問題複雜化了。然而,事實上,參數v1、v2、v3是可以通過确定的計算求得的,這個“确定的計算”應用了“輾轉相除法”,限于篇幅,另行介紹。
應用這種方法求得的參數值是:
v1=-1
v2=1
v3=1
故而:
x=70v1+63v2+30v3+105k
=-70+63+30+105k
=23+105k
(四)補充所謂“今解”,本質上并不現代,頂多是所用數學符号現代化了。本文所述“今解”,我國南宋數學家秦九韶于13世紀所著《數書九章》卷一中就已明确給出,名為“大衍求一術”。歐洲數學家歐拉約于1743年發現這一算法,高斯約于1801年發現這一算法。因此,其結論也被稱為“中國剩餘定理”。從今天的眼光來看,“物不知數問題”仍然是一個難題,即便高中的優秀生要弄通前文所講道理,估計也得費好一番工夫。況且,還有不滿足“除數兩兩互素”條件的所謂“物不知數問題”,更是難上加難。這的确是我國古代數學的一大驕傲!
秦九韶
《數書九章》
萊昂哈德·歐拉(Leonhard Euler ,1707.4.15~1783.9.18),瑞士數學家
約翰·卡爾·弗裡德裡希·高斯(1777.4.30~1855.2.23),德國數學家
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!