前不久,网剧《显微镜下的大明之丝绢案》播出,剧中多次呈现一种神奇的“推步聚顶之术”,用于测量那些形状极不规整的“妖田”。面对“妖田”,常用的测量方法和面积公式都派不上用场,只有使出“推步聚顶之术”,才能又快又准地解决问题。
本剧以明朝为历史背景,明朝真的有过“推步聚顶之术”吗?我们不妨一边回顾剧情,一边回看历史,探讨一下明朝的土地清丈和相关的数学技能。
帅家默用“账码”表示数字,试算“推步聚顶之术”
真实历史记载于万历年间《丝绢全书》
先说剧情。
故事发生在明朝中叶,主角叫帅家默,金安府金华县人,父母双亡,性格自闭,丝毫不通人情世故,但却极具数学天分,故此得名“算呆子”。帅家默查阅官府档案时,偶然发现他们金华百姓每年要缴纳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定位技术出现之前,用“鞋带公式”测量面积只能是一种想象,因为它不仅需要建立坐标系,更需要地块平整,无坡度,无坑洼,无视线阻隔,否则根本测不出各个顶点到坐标原点的真实距离。
文并供图/李开周
编辑/韩世容