出土算术文献复原的新方法:穷举法、特性分析法
2021-11-27衣抚生
衣抚生
(河北经贸大学 发票博物馆,河北 石家庄 050061)
一、问题的提出
出土算术文献,是目前学界研究的热点之一。数字残缺问题,是出土算术类文献整理中的常见问题,对出土算术文献的研究造成了较大的困扰,亟需解决。目前来说,其解决方法主要有:通过红外线扫描,获得更为清晰的图像;结合残余笔画,进行字形分析;采用简单的整数或分数运算,进行推测。本文介绍两种在特定情况下简单有效的新方法,即穷举法、特性分析法。穷举法,即将取值范围内所有的可选项逐一验证,直到验证完毕。这种方法的要求是:可选项必须是有限的。它在分母完整、分子缺失的情况下,简单有效,通常可以极大地缩小范围,甚至是直接得出正确答案。特性分析法,是根据算题的特性,灵活地采取相应的解法。为了简便起见,本文介绍的是一类特殊的特性分析法——乘数因子包含大素数的特性分析法。
本文以《算数书》“大广”算题为例,来介绍这两种方法。当然,笔者关注的不是“大广”算题本身,而只是将其作为介绍穷举法和特性分析法的一个例子。“大广”算题的内容如下:
大广广七步卌九分步之□□□□□□□□□□□□□□□□□为□六十四步有(又)三百卌三分步之二百七十三。大广术曰:直(置)广从(纵)而各以其分母乘其上全步,令分子从之,令相乘也为实,有(又)各令分母相乘为法,如法得一步,不盈步以法命之。[1](156)
该算题残缺数字较多,其复原工作也就成了非常有趣的智力游戏。郭书春[2](217-218)、郭世荣[3](284)、王元钧[4]等先生都对该算题有过研究,不过他们的研究均修改了已知条件。要知道,已知条件是我们进行推论的基础,这个基础如果不存在,可以进行随意修改,那么本算题就根本无法进行校正。因此,我们坚持不改动已知条件,对这些研究也就置而不论。纪志刚先生的观点值得引起重视——他是第一个尝试用穷举法来解决该问题的学者。纪先生通过计算机程序,得到11种可能性,经过排除,留下两种组合,分别是:
广七步四十九分步之七,从九步十四分步之一。问为田几何。得曰:为田六十四步又三百四十三分步之二百七十三。
广七步四十九分步之卌二,从八步╪七分步之十九。问为田几何。得曰:为田六十四步有(又)三百四十三分步之二百七十三。[5](233)
纪先生通过计算机寻找各种可能性,尝试了很多种情况,其结论具有较强的说服力,但是不完全准确,论证过程也存在缺憾:
第一,纪先生的排除方法有错误。纪先生计算出来的“从”全部都是最简分数,没有注意到“从”可以不是最简分数。以纪先生的计算结果来说,两种组合的“广”都不是最简分数,他却要求“从”必须是最简分数,并据此进行排除。这是难以说服人的。比如,被排除了,理由是分母3不是7的倍数。其实,我们完全可以把该分数变成非最简分数8—,这样就可以满足条件了。
第二,纪先生假定B2的值为“1-343之间”。这个假定是不合理的,B2为什么就不能大于343?B2完全可以大于343,经过约分后,让结果的分母变成343。当然,纪先生这么做是有苦衷的:倘若不限制B2的大小,那么这道算题就需要尝试无数种可能性,也就无从计算了。因此,纪先生只能人为设定一个最大值,从而将无数种可能性变为有限种可能性。这恰恰说明纪先生的算法有问题,存在较大的局限性,无法做根本上的解决。
第三,纪先生的计算过程太繁琐。尝试的排列组合达到(1+2+3+……+342)×48×2=5,630,688种之多!(计算方法为:组合需要尝试的次数×A需要尝试的次数×B需要尝试的次数)。而且,这种方法虽然给出了答案,但是没有严密的计算方法,也看不到计算过程,这不能不说是一个遗憾。
总之,纪先生的计算方法不是很完美,存在这样或那样的问题,却是很有价值的,原因在于,这种计算方法实际上已经具备了穷举法的雏形,值得重视。
在正式介绍穷举法和特性分析法之前,我们首先讨论这道题目的两个限制条件。限制条件1:我们可以根据缺失的字数,大体推断出A、B1、B2所占的字数。按照《算数书》和秦汉数学材料的表述规范,我们可以给“大广”算题补充一些文字(用加黑字体标识):“大广广七步卌九分步之□□从八(或“九”)步□□分步之□问为田几何。曰:为田六十四步有(又)三百卌三分步之二百七十三。”其中,“问”字可以省略,《算数书》公布答案的句式有“曰”和“得曰”两种,也就是说,A、B1、B2的字数加起来是4(“得曰”)到6(省略“问”字)个字之间。限制条件2:我们注意到,计算结果343可以化为49×7,而被乘数的分母是49,这表明7这个因子应该来自B2。如果上述8组数据的B2不能整除7,需要将B1、B2都乘以7。
二、穷举法
下面,我们来介绍前文所提到的穷举法。穷举法是最简单、最直观的方法,我们不需要像纪先生那样同时考虑A、B、B1、B2的值,把简单问题复杂化。实际上,我们只需要根据1≦A≦48这一限制条件,尝试A的48种可能性(从1到48),就可以根据,算出相应的B、B1、B2的值——我们将所得结果化为带整数的分数,整数部分即为B,分数部分的最简形式,其分母即为B2,分子即为B1(当然,我们可以根据需要进行调整,使之成为非最简形式)。例如,我们可以尝试A为3的情况,,因此,B=9,B2=346,B1=61。以此类推,只需要尝试48次,就可以得到所有的结果。由于这个结果较为繁琐,而且容易获得,这里就不详细论述了。
(1)广七步卌九分步之七,从九步十四分步之一。问为田几何。得曰:为田六十四步有(又)三百四十三分步之二百七十三。
(2)广七步卌九分步之卅二,从八步百五分步之卌九。为田几何。曰:为田六十四步有(又)三百四十三分步之二百七十三。
(3)广七步卌九分步之卅八,从八步廿一分步之七。问为田几何。曰:为田六十四步有(又)三百四十三分步之二百七十三。
(4)广七步卌九分步之卌二,从八步╪七分步之十九。为田几何。曰:为田六十四步有(又)三百四十三分步之二百七十三。
通过这道算题,我们可以看出:穷举法有可能会成为解决这一类问题的通用方法——如果一个分数的分母是完整的,分子有残缺,就可能将分子的取值限定在一个较小的范围内,配合以其他限制条件,或许会很容易得到几组最优解。退一步讲,就算分母也残缺,只要没有完全残缺,还是可以用枚举法。比如,如果本算题被乘数的分母“49”残缺了一个数字,我们就完全可以假定该数字为从0~9的数字,进行带入计算。其计算步骤依然是有限的,并且涵盖了所有的可能性。因此,在分母齐全或者部分残缺并知道残缺的位数的情况下,穷举法是具有较大价值的推导方法。
三、特性分析法
特性分析法是指先寻找该算题的特性,再根据这些特性,尽量缩减可能性和计算范围。如前所述,本算题采取的实际上是乘数因子包含大素数的特性分析法(主要体现在下文的“性质3”中)。我们将等式化为假分数的形式,可以得到方程。采用特性分析法的计算过程如下:
性质2:限制条件2可表述为B2=7m(m是正整数)。在计算的过程中,m被当成公因子消去了,所以没有显示在结果的分母值343中。
性质3:我们发现结果的分子里有一个大素数127,这可以为我们的计算提供很大的方便。通过分析方程1可知,343+A和B×B2+B1这两者之中,至少有一个能整除127,因此本题可以化解为两个部分:343+A能整除127;B×B2+B1能整除127。所有的可能解均在这其中。
(一)343+A能整除127
由于1≦A≦48,343+A的取值范围是[343,391],其中能被127整除的只有381,此时A=38。由可知,?的最简分数形式是,参考性质2可知,该分数应变成。
(二)B×B2+B1能整除127
即:B×7m+B1=127d,其中m、d均为正整数,0<B1<7m,B=8或9。我们可以分成如下两种情况进行讨论:
1.B=9,即9×7m+B1=127d,变形得:B1=127d-9×7m。由于0<B1<7m,可得:0<127d-9×7m<7m,变形可得:,即1.81d<m<2.02d,m=2d。将其代入方程,可得:B1=127d-9×7m=127d-9×7×2d=d。因此,乘数是,被乘数是。
2.B=8,即:8×7m+B1=127d(方程2)变形得:B1=127d-8×7m。由于0<B1<7m,可得,即2.02d<m<2.27d,只有当的整数部分不一样时,整数m才可能存在。由此可知,d≧4。当d≧7时,B2将是三位数,字数超出限制,不符合要求。因此,d的值只能取4、5、6、7之一。其中存在两个可能解,即:。
至此,我们就会得到该算题的全部四种可能解,即:如果343+A能整除127,那么对应的解为:,如果B×B2+B1能整除127,且B=9,那么对应的解为:,如果B×B2+B1能整除127,且B=8,那么对应的解是:。相关的文字已经在上文表述过了,这里不再赘述。
四、结语
可以看到,上述两种计算方法适用的情况不一样:在分母完整(或者是部分残缺,且明确知道残缺了多少位)、分子残缺的情况下,穷举法较为简单有效,只需要将分子按照从1到分母减1的顺序,逐个带入即可;而在数字存在某些特性,尤其是存在大素数乘数因子的情况下,特性分析法较为简单有效。在明确等式两边都有该大素数因子的前提下,通过查找该大素数因子所在的位置,可以将计算简化为几种情况,也就是说,这两种方法都是针对特定情况的有效方法。数学是出土算术类文献的核心要素,应提高数学运算在出土算术类文献整理和研究中的比例。