前不久,網劇《顯微鏡下的大明之絲絹案》播出,劇中多次呈現一種神奇的“推步聚頂之術”,用于測量那些形狀極不規整的“妖田”。面對“妖田”,常用的測量方法和面積公式都派不上用場,只有使出“推步聚頂之術”,才能又快又準地解決問題。
(資料圖片)
本劇以明朝為歷史背景,明朝真的有過“推步聚頂之術”嗎?我們不妨一邊回顧劇情,一邊回看歷史,探討一下明朝的土地清丈和相關的數學技能。
真實歷史記載于萬歷年間《絲絹全書》
先說劇情。
故事發生在明朝中葉,主角叫帥家默,金安府金華縣人,父母雙亡,性格自閉,絲毫不通人情世故,但卻極具數學天分,故此得名“算呆子”。帥家默查閱官府檔案時,偶然發現他們金華百姓每年要繳納3530兩的“人丁絲絹稅”,已經連繳100多年,而在金安府治下8個縣當中,這筆稅賦只有金華縣承擔,其他7縣均未分攤。帥家默向金華知縣揭露此事,知縣不理,他便去知府衙門和巡按衙門提告,掀起震動江南的一場風波,還與朝廷即將全面推行的土地清丈和均平稅賦政策牽扯起來……
這段劇情是有歷史原型的,相關史事詳載于明朝萬歷七年(公元1579年)定稿的《絲絹全書》。編劇創作時,核心故事未變,但人名、地名和稅賦數目均有改動。
在《絲絹全書》中,帥家默本名帥嘉謨,金安府本為徽州府,金華縣本為徽州歙縣,歙縣每年多繳的“人丁絲絹稅”并非3530兩白銀,而是8780匹絲綢,徽州府當時治下也不是8個縣,而是6個縣。劇中那位本來與帥家默對簿公堂、后來又從反派變成正派的訟師程仁清,在《絲絹全書》里本名程任卿,是徽州府婺源縣的秀才。事實上,連《絲絹全書》這部文獻都是由程任卿編寫完成的。
更有必要說明的是,本劇總編劇馬伯庸仔細研究過《絲絹全書》,他先根據《絲絹全書》創作歷史隨筆,使其成為《顯微鏡下的大明》一書的篇章之一,又在歷史隨筆的基礎上寫出這部同名網劇。
“割補之術”用來測量不規則地塊
馬伯庸不僅擅長講故事,也擅長讀歷史,從劇中出現的計算道具和測量道具可以看出,他必定參考了明朝中葉最流行的數學書籍《算學寶鑒》和《算法統宗》。
比如說,每集片頭都有一個鏡頭,用紅、黃、綠三色的小木棒和草莖組成“≡|||||、≡〇”,其中小木棒是明朝及明朝以前數學家常用的算籌,而這組用小木棒和草莖組成的符號就相當于阿拉伯數字3530。
再比如第十集,主角帥家默使用一些奇怪的符號做計算,那些符號在明朝叫“賬碼”,是阿拉伯數字普及以前中國數學家普遍使用的數字系統。
又比如說,帥家默測量土地時,常用一種仿佛現代風箏線輪的放線工具,其樣式在《算法統宗》中繪有插圖,是明朝數學家程大位發明的“新丈量步車”。
還有本劇第七集,帥家默與同樣愛好數學的鄧知縣探討土地丈量之術,提到“廣田”“圭田”“箕田”“弧田”,這些術語在明朝數學書籍里都很常見,分別指長方形地塊、三角形地塊、梯形地塊、扇形地塊。
長方形、三角形、梯形、扇形,都有現成的面積公式,易于測量和計算,但如果遇到劇中所說的“妖田”,那就很難辦了。“妖田”這個詞,現存的明朝數學書籍里并未出現,元朝《農書》里倒是有,是指灌溉之后迅速干涸的農田,與劇中含義并不相同。編劇可能是從《農書》里借用了這個詞,也可能是碰巧創造了一個同音但不同義的概念,表示形狀極不規則的多邊形地塊。
古人怎樣測量不規則地塊的面積呢?通常使用“割補之術”:先將地塊補成長方形,再切割成一個個三角形,匯總出所有三角形的面積,再減去所補圖形的面積,即是該地塊的真實面積。在第七集,帥家默與鄧知縣比賽計算同一塊“妖田”的面積,都不約而同地使用“割補之術”,而帥家默的心算能力更好,從速度而不是計算方法上擊敗了鄧知縣。
所謂“推步聚頂”其實運用了“鞋帶公式”
有沒有比“割補之術”更好的方法呢?帥家默隱約記得,小時候曾聽父親帥敦誠講過一種無需割補、直接測量的技術,也就是貫穿本劇的“推步聚頂之術”,至于技術細節,他實在記不得了。直到第14集,他突然想通父親當年的算法,還背誦出“推步聚頂”的口訣:“先牽經緯以衡量,再點原初標步長。田形取頂分別數,再算推步知地方。”
單憑這四句口訣,我們肯定搞不懂“推步聚頂”究竟是怎么一回事,然而參照劇中的操作,就能看出端倪。在第14集,帥家默丈量一塊最難計算的“妖田”,他先在該“妖田”的每一個頂點打樁,再橫平豎直地拉開繩尺,以繩尺左側交匯處為原點,分別測算各個頂點到原點的長寬步數,將這些數字成對排列,交叉計算……
曾有觀眾為帥家默的計算過程提出解釋,說“推步聚頂”運用了微積分。其實,以上測量和計算過程使用的數學原理并非微積分,而是“鞋帶公式”。“鞋帶公式”是利用坐標計算不規則多邊形面積的理論方法。簡單說,在測量地塊之前,先要建立一個平面直角坐標系,分別測量該地塊所有頂點的坐標,再沿著同一個方向(順時針或逆時針)為這些坐標依次編號,列成一張上下排列的數表,再像穿鞋帶一樣,將相鄰坐標的x值和y值交叉相乘,循環相減,將差相加,求得總和,將總和取絕對值,再除以2,即是該地塊的面積。
舉例說,有一塊不規則五邊形農田,共有5個頂點,順時針測量,這些頂點的坐標分別是(3,4)、(5,11)、(12,8)、(9,5)、(5,6)。依據“鞋帶公式”,相鄰坐標交叉相乘,循環相減:3×11-4×5,5×8-11×12,12×5-8×9,9×6-5×5,5×5-6×3;得到5個數:13、-92、-12、29、2;這些數相加,總和是-60;取絕對值,得60;再除以2,得30。所以,這塊地的面積就是30。如果測量各坐標時用的單位是丈,面積即為30平方丈,明朝60平方丈為一畝,這塊地的面積就是半畝。
在測量技術上明朝并沒有任何突破
“鞋帶公式”是德國數學家德雷斯特(Albrecht?Ludwig?Friedrich?Meister)在公元1769年提出的。幾十年后,另一位德國數學家高斯(Carolus?Fridericus?Gauss)給出該公式的證明,并且用矩陣運算予以簡化。所以,這個公式又被稱為“高斯面積公式”。
無論是德雷斯特提出“鞋帶公式”,還是高斯將該公式轉化為矩陣運算,其時間都晚于明朝,所以帥家默不可能未卜先知地使用這個公式。那么明朝數學家有沒有發明與“鞋帶公式”相近的測量術呢?沒有。
從開國皇帝朱元璋開始,明朝就格外重視土地清丈,試圖查清全國每一塊農田的真實面積,從而制定出對全國農民都比較均平的賦稅政策。然而在測量技術上,明朝并沒有任何突破,采用的仍然是此前宋朝和更加久遠的漢唐時期的數學知識,只是將算盤給普及了而已。至于劇中呈現的“推步聚頂”,那是編劇對“鞋帶公式”的演繹,不是明朝已有的數學。
坦白說,從實際操作角度看,在計算機和GPS定位技術出現之前,用“鞋帶公式”測量面積只能是一種想象,因為它不僅需要建立坐標系,更需要地塊平整,無坡度,無坑洼,無視線阻隔,否則根本測不出各個頂點到坐標原點的真實距離。
文/李開周
關鍵詞: