導讀:這是一篇相對專業(yè)的探討內算與外算的文章,因此寫的略長,盡量避開太過專業(yè)的名詞,有興趣的可以繼續(xù)觀看。
上次,我們講到南宋數(shù)學家秦九韶的《數(shù)術九章》是中國古代數(shù)學史上的一座豐碑。
與純粹探討理論的著作不同,
這本書從誕生之初就帶有強烈的現(xiàn)實主義色彩。
秦九韶本人曾為官多年,
深知國家運轉中的種種弊?。?/p>
從歷法失準到賦役不均,從工程浪費到軍需混亂。
在他看來,這一切亂象的根源,
很大程度上在于管理者缺乏“數(shù)術”知識,
無法進行精確的計算和理性的規(guī)劃。
因此,他將《數(shù)術九章》全書分為九大類,
每一類都直面一個具體的社會經濟問題。
而在每一章的開篇,他都精心撰寫了一首序詩。
這些詩歌,并非簡單的點綴,而是全書的“魂”。
它們的作用在于:
將具體的數(shù)學問題,
提升到“道”、“天時”、“仁政”的哲學高度,
闡明數(shù)學是探究宇宙規(guī)律、輔佐國家治理的根本工具。
同時,毫不客氣地指出當時官吏的無能與欺詐,
強調精準計算對于實現(xiàn)社會公平、杜絕腐敗的重要性。
當然,字里行間中,他也展現(xiàn)了中國本土數(shù)學方法的精妙與源遠流長,
建立一種基于理性與科學的文化自信。
(實際上,據我從眾多古籍中搜集的證據了解,
同時期的西方并沒有數(shù)學,一直到宋末元初時期,
蒙古人掠奪了很多漢人工匠隨軍西征時,
才帶一些東西到西方。)
回到數(shù)術九章,
可以說,這九首詩為冰冷的數(shù)學注入了熾熱的人文關懷與政治抱負。
讀懂了它們,才能真正理解秦九韶寫下這部巨著的最終目標:
以數(shù)學為利器,匡時濟世。
下面講講這九首詩中的第一首。
述大衍第一
昆侖磅礴,道本虛一。圣有大衍,微寓于易。
奇余取策,群數(shù)皆捐。衍而究之,探隱知原。
數(shù)術之傳,以實為體。其書九章,惟茲弗紀。
歷家雖用,用而不知。小試經世,姑推所為。
宇宙如昆侖山般磅礴,
而其本源的“道”是虛靜而歸于“一”的。
古代圣人創(chuàng)立了“大衍之術”,
其精深的道理蘊含在《易經》之中。
(大衍術)通過取不同的余數(shù)(奇余)來推算,
可以拋開那些龐雜的(無法直接處理的)數(shù)字。
推演并深入研究它,
就能探究幽隱的奧秘,
知曉事物的本原。
自古流傳下來的數(shù)學著作(如《九章算術》),
都以解決實際問題為核心。
但《九章算術》里,卻沒有記載這種(大衍)算法。
如今的歷法家們雖然也在使用這類方法,
但很多人只是機械套用,并不理解其根本原理。
我在此小試牛刀,
將它應用于經世濟民的實際問題中,
姑且推演一番它的作用。
這首詩提出了全書最核心、最耀眼的數(shù)學成就,
大衍總數(shù)術(現(xiàn)代稱為“中國剩余定理”)。
這也是秦九韶頗為自豪的一件事。
秦九韶將他的算法與宇宙探源的哲學思想聯(lián)系起來。
大衍術正是從一堆看似無關的“余數(shù)”中,
反推出那個唯一的“本原數(shù)”。
這既是數(shù)學求解,也是哲學溯源。
大衍術的技術核心是指“奇余取策,群數(shù)皆捐”。
面對一個巨大而未知的總數(shù),我們不需要知道它本身,
只需要知道它被不同數(shù)除所得到的“余數(shù)”,
就能反推出這個總數(shù)。
這是極其高明的化繁為簡思想。
當然,秦九韶在詩里寫道:
“歷家雖用,用而不知”,
直接批評了當時的從業(yè)者缺乏理論深度,
只會依樣畫葫蘆。
同時,通過“《九章》弗紀”點明這是對傳統(tǒng)數(shù)學的重大補充和發(fā)展,
展現(xiàn)了強烈的創(chuàng)新自信。
這一章主要解決的是復雜的歷法計算、兵員點卯、財物計數(shù)等問題。
也就是大衍術的應用。
那么今天我用最通俗的語言來講講這個大衍術,
并理清楚其與易經的關系。
有句話叫“韓信點兵,多多益善?!?/p>
為什么呢?
因為韓信掌握了點兵的算法,
通過士兵報數(shù)立馬可以推算出當前有多少人。
那么他是怎么做到的?
今天來解密下,這是和秦九韶的大衍求一術密切相關的問題。
想象一下,你就是韓信,在清點士兵,
但人數(shù)太多,懶得一個個細數(shù)。
于是你命令他們:
“3人一排,最后剩下 2 人!”
“5人一排,最后剩下 3 人!”
“7人一排,最后剩下 2 人!”
問題來了:至少有多少名士兵?
這個問題出自南北朝的數(shù)學著作《孫子算經》,
原文是“今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問物幾何?”
“大衍術”(中國剩余定理)就是為了完美解決這類問題而生的。
它的核心目標是:根據一個數(shù)被不同除數(shù)除所得到的余數(shù),反推出這個數(shù)本身。
那么如何通過大衍術來“解題”呢?
《孫子算經》里有一段像詩歌一樣的解法口訣:
“三人同行七十稀,五樹梅花廿一支,
七子團圓正半月,除百零五便得知?!?/p>
我們把它翻譯成現(xiàn)代的解題步驟,
來解決上面的將軍點兵問題。
第一步:找到三個“神奇的數(shù)字”
這個算法最巧妙的地方,
是先找到三個“對別人沒影響,只對自己有用的”數(shù)字。
針對“除以3”:
我們要找一個數(shù),它必須是5和7的公倍數(shù)(這樣除以5和7都余0,對它們沒影響),
同時,這個數(shù)除以3要余1。
5 × 7 = 35。但35 ÷ 3 = 11...余2,不行。
35的倍數(shù)里找:35 × 2 = 70。70 ÷ 3 = 23...余1。找到了!
這就是口訣里的“三人同行七十稀”。
針對“除以5”:
找一個數(shù),它必須是3和7的公倍數(shù),同時除以5要余1。
3 × 7 = 21。21 ÷ 5 = 4...余1。
一次就找到了!這就是“五樹梅花廿一支”。
針對“除以7”:
找一個數(shù),它必須是3和5的公倍數(shù),同時除以7要余1。
3 × 5 = 15。15 ÷ 7 = 2...余1。
也找到了!這就是“七子團圓正半月”(半月即15天)。
我們現(xiàn)在有了三個“神奇數(shù)字”:70,21,15。
第二步:合體!
現(xiàn)在,把題目中給出的“余數(shù)”和我們找到的“神奇數(shù)字”乘起來,再相加。
(除以3的余數(shù) 2)×(它的神奇數(shù)字 70) = 140
(除以5的余數(shù) 3)×(它的神奇數(shù)字 21) = 63
(除以7的余數(shù) 2)×(它的神奇數(shù)字 15) = 30
把它們加起來:140 + 63 + 30 = 233。
第三步:做最后的“微調”
這個233已經滿足了所有余數(shù)條件,
但可能不是最小的那個。
我們需要找到3、5、7的最小公倍數(shù)。
3 × 5 × 7 = 105。(這就是口訣里的“除百零五便得知”)
用233不斷減去105,直到得到一個最小的正整數(shù):
233 - 105 = 128
128 - 105 = 23
答案揭曉:至少有23名士兵??梢则炞C一下:
23 ÷ 3 = 7...余2
23 ÷ 5 = 4...余3
23 ÷ 7 = 3...余2
完美符合!
因為這里不是專門的數(shù)學研討,所以就不給出完整的證明,
我們來說說它和易經有什么關系。
最早的易經起卦,
不是用銅錢或者數(shù)字直接起,
而是用蓍草來起,
起法也叫“大衍術”。
具體過程如下:
《易經·系辭傳》里有句總綱:
“大衍之數(shù)五十,其用四十有九?!?/p>
目標:我們要通過一個“游戲”,來得出六個數(shù)字中的一個(6, 7, 8, 或 9),這個數(shù)字代表卦象中的“一爻”。重復這個游戲六次,就能得到完整的六爻卦象。
游戲開始(求第一爻):
準備階段:天地之始
拿出你的50根“蓍草”。
先抽出一根放在旁邊,永遠不用。
這代表“太極”,是宇宙的本源,
它不動,只是靜靜地看著一切發(fā)生。
所以,我們實際用來計算的,是剩下的49根。
這就是“其用四十有九”。
第一步:一分為二(象征陰陽)
閉上眼睛,心無雜念,將這49根牙簽隨機分成左右兩堆。
第二步:天、地、人三才
從右手邊的那堆里,拿出一根,夾在你的左手小指和無名指之間。這根象征著“人”,位于天地之間。
第三步:以四計數(shù)(象征四季輪轉)
現(xiàn)在,開始處理左手邊那堆。以4根為一組,不斷地數(shù),看看最后剩下幾根(可能剩1、2、3根,如果正好數(shù)完,就是剩下4根)。
把這些剩下的(1-4根)也夾在你的左手指縫里(比如無名指和中指間)。
接著,處理右手邊剩下那堆,同樣以4根為一組地數(shù),把最后剩下的(1-4根)也夾在左手指縫里(比如中指和食指間)。
得出第一次結果(一變)
現(xiàn)在,你手上夾著三小撮牙簽:最初從右邊拿的1根,左邊剩下的,右邊剩下的。
把這三小撮合在一起,數(shù)一下總數(shù)。你會驚奇地發(fā)現(xiàn),這個數(shù)字必定是5或者9。
把這一小堆(5或9根)放到旁邊,把桌上那些被4整除的大部隊收攏起來。桌上現(xiàn)在應該剩下44根(49-5)或40根(49-9)。
重復與演進(二變與三變)
“二變”:把桌上剩下的牙簽(44或40根)拿起來,重復一遍第2、3、4步。即:隨機分兩堆—>從右堆拿1根夾著—>分別數(shù)兩堆4的余數(shù)—>把所有余數(shù)組合起來。這次,你手上夾著的總數(shù)必定是4或者8。
把這新湊的一小堆(4或8根)也放到旁邊,收攏桌上剩下的。
“三變”:把桌上再次剩下的牙簽拿起來,再重復一遍第2、3、4步。這次手上夾著的總數(shù)也必定是4或者8。
揭曉最終密碼!
經過了這三輪復雜的操作(稱為“三變”),桌上最后還剩下一些牙簽。
數(shù)一數(shù)它們有多少根。
這個數(shù)量必定是36、32、28、或24。
最后一步,把這個數(shù)字除以4!
36 ÷ 4 = 9 (稱為“老陽”,是變爻)
32 ÷ 4 = 8 (稱為“少陰”,是靜爻)
28 ÷ 4 = 7 (稱為“少陽”,是靜爻)
24 ÷ 4 = 6 (稱為“老陰”,是變爻)
恭喜!已經通過“大衍術”得出了第一爻的數(shù)字(6、7、8、9之一)。然后,把全部49根牙簽收攏,從頭到尾再把這個極其復雜的過程重復五次,就能得到剩下的五爻,從而組成一個完整的卦象。
我們這里主要解釋下,
為什么第一次“一變”總是剩5或9?
我們有49根。49 = 48 + 1。
你先拿走1根(夾在小指),剩下48根。
你把48根分成左右兩堆(左+右=48)。
重點來了:48是4的倍數(shù)。
所以,左堆除以4的余數(shù),加上右堆除以4的余數(shù),其和也必然是4的倍數(shù)(只可能是4或8,不可能是0因為兩堆至少都有1根)。
但實際操作是,你從右堆先拿了1根,所以實際數(shù)的是(左-1)。那么 左+ (右-1) = 47。再來數(shù)余數(shù)。左mod 4 + (右-1) mod 4。
mod是取余符號。
例如,如果左是9,右是40。
那么9 mod 4 = 1。(40-1) mod 4 = 39 mod 4 = 3。
收集到的余數(shù)就是 1 (掛一) + 1 (左余數(shù)) + 3 (右余數(shù)) = 5。
而經過嚴謹?shù)臄?shù)學窮舉可以證明,無論你怎么分,1 + (左 mod 4) + ((右-1) mod 4) 的結果,只有5和9兩種可能。
第二次二變和第三次三變,
都依此類推。
說到這里,我們再來回頭說,
大衍求一術(中國剩余定理)和大衍術(卜蓍法),
具體有什么聯(lián)系。
這兩種看似完全不同領域的術法,
共同展現(xiàn)了古代中國數(shù)學思想中一個極其深刻的智慧:
通過“余數(shù)”來掌控“本體”。
而且它們都屬于構造性的思維典范。
因為,兩者都不是通過暴力窮舉去尋找答案,
而是通過巧妙的步驟一步步地構造出最終結果。
《易經》通過三輪歸奇(收集余數(shù)),
將這些中間部件(每變拿走的蓍草數(shù))從總數(shù)中剔除,
剩下的部分就是最終的結果。
中國剩余定理通過構造幾個“基礎解”,
然后將它們線性疊加,最終構造出總解。
不僅如此,它們都體現(xiàn)了“化繁為簡”的降維思想。
處理一個大數(shù)字本身是很復雜的,
但處理它關于某個小數(shù)字的余數(shù),就簡單多了。
《易經》不去直接處理49這么個數(shù),
而是通過反復求它關于4的余數(shù),來推動整個過程。
中國剩余定理不去直接處理未知的巨大數(shù)字x,
而是分別研究它在3、5、7等小數(shù)世界里的“投影”(余數(shù)),
再把這些投影拼回原像。
所以,它倆都從模運算出發(fā),
一個流向了哲學和宇宙論的田野,
一個流向了純粹數(shù)學和應用科學的江河。
這也是為什么古代數(shù)學家秦九韶一直到我這邊,
都在說,內算和外算密不可分,
因為它們本質的思想,
是直接相通的。
聯(lián)系方式
可掃下面二維碼添加我為好友。
歡迎咨詢
添加老師微信
獲取更多知識
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.