弃九法(又称
去九法,舍九法),在中国古代算书中也叫“九减”“九除”“身数除”,在外文文献中被称为cast out nines或balances。弃九法是一种检验正整数间加减乘除等计算的方法。检验时需要分别求得参与运算数字及运算结果的弃九数,用弃九数代替原运算中的数字,检验新的计算结果的弃九数是否等于原运算结果的弃九数,两者不相等说明运算结果一定错误,相等说明结果有可能正确。弃九数的本质是一个数字除以九的余数。弃九法属于今天初等数论的同余理论。
操作方法
弃数的求取
弃九数
弃九数的本质是一个数字除以9的余数,最早乌格里迪西(Abu'l Hasan Ahmad ibn Ibrāhīm Al-Uqlīdisī,约920-约980)给出的求取方法是用需要求弃九数的数字重复多次减去9。乌格里迪西还给出了弃九数的简单算法,即将一个数字每一位上的数字相加,所得的数字如果超过一位,则继续将每一位上的数字相加,直到剩下一个一位数为止,这个一位数就是那个数字的弃九数。例如要求取86767的弃九数,就可以计算8+6+7+6+7=34,34是两位数,因此继续计算3+4=7,此时7就是86767的弃九数。
弃七数
弃七数的本质是一个数字除以7 的余数,但具体操作中存在简便算法,下面以24059为例展示弃七数的简便求取方法:
先将24059从最高的两位处断开,得到24和059,求24除以7的余数,得到3;将后面数字的最高位也就是0接上去,得到30和59,求30除以7的余数,余数是2;将后面数字的最高位也就是5接上,得到25和9,求25除以7的余数,得到4;把后面的数字也就是9接上得到49,求49除以7的余数,余数为0,0即为24059的弃七数。
弃数的选择与其他可行的弃数
理论上能够用于检验的弃某数可选择性很大。意大利数学家斐波那契(Fibonacci)所著的《计算之书》(Liber Abaci,1202)中就使用过弃七法、弃九法、弃十一法、弃十三法和弃十七法等多种弃法,但考虑到检验效率,目前日常检验较为常用的方法仍然是弃九法和弃七法。
检验的方法
弃九法可以应用在正整数间加、减、乘、除、开方以及分数乘法的检验中,其具体做法如下:
正整数加法
利用弃九法检验正整数加法时,需要先求出每个加数的弃九数,再将这些弃九数相加,对得到的数字再求弃九数,将其与原加法的和的弃九数进行对比,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
例如要利用弃九法检验加法1954+2658=4612,先计算出加数和计算结果的弃九数,分别是1、3和4,将加数的弃九数带入原先的计算中,得到1+3=4,4与原计算结果的弃九数相等,说明这个加法计算可能是正确的。
正整数减法
利用弃九法检验正整数减法时,只需要分别求出被减数、减数、差的弃九数,用被减数的弃九数减去减数的弃九数,对新得到的差再求弃九数,将原差的弃九数与新差的弃九数进行对比,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
检验减法86767-7485=79282时,需要分别求出被减数、减数和差的弃九数,得到7、6和1,将被减数与减数的数弃九数带入减法计算中有7-6=1,原减法计算差的弃九数也是1,说明计算有可能是正确的。
正整数乘法
利用弃九法检验正整数乘法时,只需要分别求出乘数和乘积的弃九数,将乘数所有的弃九数相乘,对新得到的乘积再求弃九数,将原乘积的弃九数与新乘积的弃九数进行对比,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
以乘法9876×5432=53646432为例,乘数的弃九数分别是3和5,乘积的弃九数是6;将两个乘数的弃九数带入乘法中,有3×5=15,1+5=6,这与原乘积的弃九数相等,因此计算有可能是正确的。
正整数除法
由于除法存在除不尽的可能性,利用弃九法检验正整数乘法时需要考虑余数的情况。余数为零时,先求出被除数、除数、商的弃九数,再将除数和商的弃九数相乘,对乘积求弃九数,将乘积的弃九数与被除数的弃九数对比,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
例如,249508÷931=268,被除数、除数和商的弃九数分别是1、4和7,将除数与商的弃九数相乘,有4×7=28,其乘积的弃九数是1,这与被除数的弃九数相同,因此计算有可能是正确的。
余数不为零时,则需要分别求出被除数、除数、商的弃九数,将除数和商的弃九数相乘,对乘积求弃九数,再将求得的弃九数与余数相加,对相加的和再求弃九数,将最后求得的弃九数与被除数的弃九数对比,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
例如,264857除以475,商是557,余数282。被除数的弃九数是5,除数的弃九数是7,商的弃九数是8;7乘以8得到56,56的弃九数是2;给2加上余数282得到284,求得其弃九数是5,这和被除数的弃九数一致,因此计算有可能正确。
正整数开方
对于完全平方数,要检验其开方结果的正确性,只需要求出被开方数字的弃九数和所开出的正整数根的弃九数,对所开出根的弃九数求平方,再对这个平方求弃九数,将新得到的弃九数与原先被开方的数字的弃九数对比,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
例如对116281开方得到正整数根341,检验时分别求出被开方数和正整数根的弃九数,即1和8,计算正整数根的弃九数的平方,得到82=64,其弃九数是1,这与被开方数的弃九数相等,因此开方计算有可能是正确的。
对于非完全平方数,开方之后会有余数产生,利用弃九法检验这类开方计算时,需要求出被开方数的正整数根的弃九数,对所开出根的弃九数求平方,求出这个平方的弃九数,再给这个弃九数加上开方时得到的余数,对两者的和求弃九数,最后对比这个弃九数和被开方数字的弃九数是否一致,不一致说明计算一定错误;一致说明计算有可能正确。
例如,要对67548开平方,得到的正整数根是259,余数是467。先求出67548的弃九数是3,259的弃九数是7;72=49,49的弃九数是4;我们给4加上余数467,两者和的弃九数是3,这和被开平方的数字的弃九数是一样的,因此这个开方计算有可能正确。
带分数乘法
利用弃九法检验带分数乘法计算时,先将带分数进行通分,只考虑分子部分,分别求出两乘数分子部分的弃九数,将两者相乘,对乘积再求弃九数,记为A;求出乘积分子部分的弃九数,记为B;将A与B比较,两个数字不同说明计算一定错误;两数相同说明计算有可能正确。
以为例,要利用弃九法检验这个计算,先将乘法转化为,分别求出两乘数分子部分的弃九数即2和2,将两者相乘得到4,记为A;对乘积4225求弃九数得到4,记为B,对比发现A、B一致,因此计算可能正确。
原理
弃九法主要是应用了同余原理,现以正整数乘法为例对弃九法的原理进行证明:
对于正整数乘法,令
那么上面所求得的乘积是错误的。
发展简史[2]
弃九法最早出现在10世纪阿拉伯数学家乌格里迪西的《印度算术书》(the Kitāb al-fusūl fī al-hisāb al-Hindī, 952/3)中,乌格里迪西介绍自己是首先使用这种检验方法的人,目前的史料也支持这一观点。《印度算术书》将这一检验方法应用在对正整数、四则运算、开方、分数计算和一些印度、阿拉伯特殊算法的检验中。作者给出了弃九数求取的一般方法和简便方法,同时也指出了弃九法检验存在的缺陷,并列举了其失效的情况。
此后,弃九法在阿拉伯世界得到了广泛传播与应用。15世纪初阿拉伯世界最优秀的数学家之一阿尔·卡西(Ghiyāth al-Dīn Jamshīd Mas'ūd al-Kāshī,约1380-1429)从适合十进制的弃九法中发展出了适合六十进制的弃五十九法,他将这一方法应用在求取圆周率的运算中,这体现出卡西对弃数验法有效性和实用性的认可。
13世纪初,意大利数学家斐波那契所著的《计算之书》将阿拉伯算术知识介绍到了欧洲,弃九法也随之传入了欧洲。除了弃九法外,《计算之书》中还介绍了弃七法、弃十一法、弃十三法以及弃十七法等多检验方法。斐波那契使用的求取弃七数的方法也来自阿拉伯。
《计算之书》中的数学内容在欧洲产生了深远的影响,此后的许多数学作品中都会使用弃数法进行检验,但这些著作都不再追求弃数的多样性,一般只介绍弃九法和弃七法。法国数学家许凯(Nicolas Chuquet,约1455 -1488)的《算术三编》(Triparty en la Sciences des Nombres,1484)、意大利数学家帕乔利(Luca Pacioli,1445-1517)的《算术、几何、比和比例概要》(Summa de arithmetica, geometria, proportioni et proportionalita,1494,又简称《数学大全》)等欧洲数学著作都会在计算时附上利用弃九法、弃七法。
16世纪中期,为了应对宗教改革带来的冲击,教皇保罗三世(Pope Paul III,1534-1549在位)批准成立了耶稣会(Society of Jesus)。1582年耶稣会派遣意大利传教士利玛窦(MatteoRicci,1552年-1610年)前往中国传教,在华期间利玛窦将大量欧洲数学、天文作品翻译成中文,其中便包括德国数学家克拉维乌斯(Christoph Clavius,1537-1612)的《实用算术概要》(Epitome Arithmeticae Practicae,1583)。《实用算术概要中》中演示了弃九法、弃七法的使用方法,作者使用字母X符号来辅助整理弃九数、弃七数,以这部作品为底本编译而来的《同文算指》(1613)中完整地保留了这些内容,弃九法从而进入了中国。在《同文算指》中弃九法被称为“九减”“九除”,弃七法则被称为“七减”“七除”。在明末清初的《太西算要》(1625)、《欧罗巴西镜录》等介绍欧洲数学的作品中也都有弃九法和弃七法内容,但对这一检验方法的称呼在不同作品中略有不同。
清初著名数学家梅文鼎(1633-1721)在《历算全书之笔算》(1693)中利用弃九法检验加减运算时,只采用短竖线整理等式两端的弃九数,使得这一检验方法的书写更为简便、直观。
局限性
使用弃九法检验计算时,如果最终的弃九数不相等,则此计算一定错误;但如果两次计算的弃九数相等,也不能保证计算一定正确。以乘法574×386=211142为例,两个乘数的弃九数分别是7和8,乘积的弃九数是2,7×8=56,56的弃九数也是2,这是符合弃九法检验的,但是如果将574×386乘积位置的数字换成211412或211232等数字,计算一定发生了错误,但由于乘积位置上数字的弃九数仍然是2,弃九法就无法检验出这些错误。乌格利迪西早在提出弃九法时就注意到了这一问题。
然而,只要按照加、减、乘、除的四则运算法则进行运算,错误往往发生在进位、借位、错位时,这些错误比较容易通过弃九法检验出来。如果不是刻意去凑数,把的乘积写成211412或211232等数字的可能性非常小。自弃九法产生以来,这一方法在一千余年中被多个文明接受并广泛使用,反复出现于多部重要的数学著作中,这些数学实践已经证明弃九法是一种操作简便且行之有效的检验方法。
在现代的意义
数学教育
作为一种简单有效的检验方法,弃九法在中国晚清时期的《直方大斋数学》(1903-1907)、《算术驾说》(1907)等初等数学教科书都有介绍。中国教育部在1952年颁布的《中学数学教学大纲(草案)》中也指出应当让学生使用弃九法来检验演算的结果。近些年,弃九法再次出现在我国高中数学教材选修内容中。
校验码
弃九法的发明是为了避免计算中出现的错误,但随着计算器等工具的发展,计算出错的可能性不断降低,但输入数字时仍然存在出错的可能性,因此编码学上引入了校验码以检验输入数字的正确性。校验码被广泛应用在身份证号码、全国组织机构代码、银行卡号、钞票号码、图书ISBN编号、商品条形码中,而这些校验码的计算大多也会涉及余数求取。例如,目前我国第二代居民身份证一共18位,将前17位数字与其对应的加权因子相乘,计算其总和,再求出数字总和除以11的余数,也就是求出它的弃十一数,对这个数进行查表就能得到身份证的第18位数字,这个数字就是身份证号码的校验码。上述校验码检验与弃九法检验思想一致。