《孫子算經》除了「雞兔同籠」,還介紹了這個問題

《孫子算經》是一本十分著名的中國古代數學典籍。除了非常著名的「雞兔同籠」問題之外,其中還有一個廣為流傳的經典數學問題——「物不知數」問題。

《孫子算經》除了「雞兔同籠」,還介紹了這個問題

什麼是「物不知數」問題呢?相信大家一定都聽過一個很著名的數學故事「韓信點兵」,此故事在很多書籍故事中都提到過。說在大戰之後,韓信讓士兵們列隊然後清點人數。如果士兵們三人一組,那就會多出兩個人來;如果按五個人一組,就會有三個人剩餘;要是讓七人一組的話,則又會多出兩個人。這個問題的最終解決方法被稱為孫子定理,也叫做「中國余數定理」或「中國剩餘定理」。

《孫子算經》除了「雞兔同籠」,還介紹了這個問題

用現代的數學語言來解釋的話,中國剩餘定理就是個一元線性同餘方程組。解這個方程組最「笨」的辦法就是窮舉法。以「韓信點兵」問題為例,把所有小於105的自然數都試一遍,然後找到滿足條件的自然數即可。

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

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

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

可以觀察到,三個條件都滿足的最小正數是23,所以23是這個問題的一個答案。這個問題還有無窮多個其他的解。所有的解都可以通過23加上105的若干倍得到,105在這里是3、5、7的最小公倍數。

窮舉法對求解簡單的「物不知數」問題速度很快,但是在問題稍微復雜之後,計算量變得很大。《孫子算經》中給出的算法比窮舉法進步一些,古代數學家程大位把《孫子算經》中的解法總結成一段口訣:

三人同行七十稀,

五樹梅花二十一。

七子團圓正半月,

除百零五便得知。

翻譯成白話就是:給定一個數,這個數分別除以3,5和7,得到的余數分別乘以70,21和15。最後把這些乘積相加,最終的結果與初始給定的數一定相差105的倍數。

「物不知數」問題開創了同餘數研究的先河,但是它沒有寫明算法中出現的70,21和15是如何獲得的,所以《孫子算經》並沒給出求解此類問題的通用方法。

宋代數學家秦九韶在《數書九章》中第一次完整、詳細的闡述了求解一次同餘方程組的算法「大衍求一術」。「大衍求一術」通過特定方法求出了70,21和15三個數,並且闡述了求得的這三個數具備下面的性質:

70是5和7的公倍數,同時被3除餘1;

21是3和7的公倍數,同時除以5餘1;

15是3和5的公倍數,同時除以7餘1;

《孫子算經》除了「雞兔同籠」,還介紹了這個問題

所以,在求出70,21和15三個數之後,如果要尋找一個被3除余a,被5除b,被7除余c的數,其中的一個答案是70a+21b+15c,其它所有的答案都和70a+21b+15c相差105的整數倍。

《孫子算經》的「物不知數」問題和「大衍求一術」也是為數不多被世界廣泛承認的中國古代數學成就之一。英國傳教士偉烈亞力在1852年發表的《中國科學摘記》中系統的介紹了《孫子算經》「物不知數」問題和秦九韶的「大衍求一術」;1876年,德國數學家馬蒂生首先指出 「大衍求一術」和數學王子高斯在1801年提出的一元線性同餘方程組的通用解法等價;德國著名數學史家康托也高度評價了「大衍術」,並稱贊發現這一方法的中國數學家是「最幸運的天才」。

來源:華人頭條B

來源:華人號:歷史