整数乘除法笔算的前世今生

2017-05-07 05:56
小学教学(数学版) 2017年11期
关键词:被除数除数竖式

[本文系江苏省教育科学“十二五”规划重点资助课题 “数学史视野下的小学数学教学的案例研究”(批准号:B-a/2013/02/002)的研究成果之一。]

一、乘法笔算的历史演变

乘法是加法的特殊情况,重复进行同一个数的加法运算就产生了乘法,对这种重复计算的不同处理,就产生了不同的乘法计算方法。早在古埃及纸草书上就记载着一种乘法——倍乘法,也就是先加倍计算,然后组合不同的倍数和从而完成计算(见图1)。虽然倍乘法不具有现代笔算乘法的形式,但在几千年笔算乘法的历史进程中体现了旺盛的生命力。1546年,德国数学家施蒂费儿(备注英文)的著作中将32×13=412写成下面的形式(见图2),明显带有埃及倍乘法的痕迹。

图1

图2

可以想象,当计算的数目大了,倍乘法不仅仅逐次加倍计算很麻烦,而且组合不同倍数和的时候同样不容易。在20世纪初,在欧洲流行着俄罗斯农夫算法,比如要计算49×28,就将49逐步取半并记录在上行,把28逐步加倍并记录在对应的下行位置,如图3。这样算,其中的原理还在于:一个因数扩大的倍数和另一个因数缩小的倍数相同,那么乘积不变。49不断地取半,而与此同时28不断地加倍,所以俄罗斯农夫算法就把“49×28”转化为了“1×896”,这样转化的目的显然是为了回避倍数和的组合。但第一次对49取半得24,相当于少算了一个28;第四次对3取半的时候,少算了一个448,所以49×28的最后结果为:896+448+28=1372。仔细分析一下,896是32个28的积,448是16个28的积,所以896+448+28也就是计算(32+16+1)个28的积,其本质还是倍乘法。倍乘法上述两方面的麻烦可见一斑。

中国古代计算32×13,看作求32的13倍,由于13是由两个不同位值的数字1和3组成的,所以在计算中可以分别计算32的10倍和3倍,然后把结果相加。

虽然,中国古代进行乘法计算的原理和现在没有什么区别,但中国古代的记数和进行算术运算工具都是算筹,即一根根同样长短和粗细的小棍子,表示多位数时,从右到左,纵横相间,个位用纵式,十位用横式,百位用纵式……依此类推,遇零则置空。算筹的乘法计算,分为三层,上位、中位、下位,依次分别放乘数、积和另一个乘数。计算时把多位数变成一位数去乘多位数,利用“九九口诀”乘一位加一位。还是以 13×32=416为例,如图4。

从图中可以看出,算筹乘法的步骤与现在的笔算乘法基本一致,不同的是,算筹乘法从高位乘起,积置于两个乘数之间。也因为是借助算筹进行计算,从高位算起,遇有进位,可以很方便地增添算筹,所以,“从哪里算起”在古人看来根本不是个问题。后来,中国古代的算筹乘法在印度出现,但他们变成了写算,用小木棍在撒着红粉的白板上写数和计算(也称“沙盘算法”或“土盘算法”),由于也可以随时改动数字,所以他们的运算步骤与中国的筹算一样,不过把积写在两个乘数的上面。公元9世纪,印度数学开始传入阿拉伯,并同时传入了中国的造纸术,阿拉伯人开始在纸上运算。纸上运算比起中国的筹算和印度的写算来,不能随时改动数字,只能逐次划掉中间步骤所得的结果,因此算式显得很混乱,也容易出错。当欧洲人接受纸上的乘法计算时,就进一步作了改变。1494年,在意大利数学家帕乔利(备注英文)的著作《算术、几何、比与比例集成》中记录的乘法竖式,已经有了现在乘法竖式的雏形,当时叫“叠果法”。仍然以32×13为例,计算成如图5。从乘法计算的书写格式看,和现在相比已经相差无几了。但其计算步骤,和现在的低位算起是不同的,无论是分解成32×(10+3)还是分解成(30+2)×13,都是从高位算起——实际上,不仅仅是乘法运算,加法和减法的运算也都是从高位算起的。但纸笔不像算筹和沙盘那样可以随意改数字,高位算起时进退位带来的麻烦如何解决呢?变化总是在逼迫中产生的,后来人们有了下面的算法:

图5

图6是19世纪前后欧洲计算 “3709+8540+2618+706”,为了解决计算过程中进位的问题,把每次计算的结果都独占一行,这样就把进位的数也写了出来,避免了对进位结果的记忆。图7是欧洲人计算 “748×632”,既有高位算起也有低位算起,其表达的原理和加减竖式基本一致。图8是印度人对于进位的处理,计算 “3709+9840+2618+706”,先算个位的“9+0+8+6”得 23,就在和的个位位置上写“3”,并且向十位进“2”,这个进位的“2”就写在下一行的十位处。也就是说,印度人的竖式中出现了一个专门记录进位数的“进位行”。对于减法计算,只不过“进位行”变成了“退位行”,原先的加法计算变成了减法计算,如图9。如个位上“2-3”不够减,就从十位退“1”,因此在第四行“退位行”的十位上写“1”。

图6

图7

图8

图9

对于加法竖式中的“进位行”和减法竖式中的“借位行”,古代印度人的说法英译为“Obliterating Line”,意思是“可删除的线”。现在竖式中,这一行真的被删除了,使得竖式的写法更为简洁和浓缩。加法、减法、乘法竖式中,不必要记录的删除以及对计算过程中一些思考步骤的压缩,到底是什么时候完成的,这已经不重要了,重要的是现在看来如此规范的写法,曾经是那么繁琐!

回顾历史,一方面我们会感慨于现在纸笔竖式计算的简练,另一方面也会真切感受到繁琐不一定就没有价值,它把计算过程中的每一次思考表达得更为直白和浅显。因此,我们也就不难理解,即便到现在,国外的小学数学教科书中,纸笔竖式计算中还带有如此“多余”的符号和写法(如图10),这种“多余”正是可贵的儿童视角的体现!

图10

二、除法笔算的历史演变

如同乘法的笔算历史演进脉络为 “中国筹算——印度沙盘算——西方纸笔算”一样,与现在最接近的除法笔算形式最早也诞生在中国,同样也是通过算筹进行的。同乘法运算一样,除法运算也是分为三行:上行是商,中行是实(也就是被除数),下行是法(也就是除数)。除数除到被除数的哪一位,就把除数摆到被除数哪一位的下面,除完再往右移。比如计算5984÷16,5不够被16除,就用59除以16,把除数16摆到被除数“59”下面,如图11中第①步,16去除59商3,被除数还余1184,将16右移一位,如图11中第②步,如此下去,直至得到最终结果374。若除不尽,就摆在那里成带分数形式。

图11

这种除法,后来也以沙盘算的形式在印度出现,当传入阿拉伯后,因为在纸上计算的缘故,如同乘法计算一样,他们逐步用斜线划去无法直接抹去的数字,演算完毕就在纸上留下了一行又一行划去的数字,整个算式好似一只帆船,这就是历史上的帆船除法。帆船除法在欧洲盛行了相当长的时间,直到17世纪末18世纪初才逐步被现行的除法所取代。

图12

历史上众多运算,已经表明除法和减法运算的内在联系。所以,17世纪末18世纪初,欧洲出现了如图12所示的除法运算。计算“1554÷37”,其基本思路是从1554中反复减去37,直到结果为0,减去的次数就是除法运算的结果。为了使减去的次数尽量少,无疑首先设法从被除数中减去除数的整十倍(被除数如果足够大,也可能首先设法减去除数的整百或整千倍)。因此,图中第Ⅰ步减去“37”,实际上是减去了 370,还剩“118”,其中个位上的4省略没写。第Ⅱ步从 “118”中再减去“37”。

当被除数和除数都比较大时,比如“22028148÷423”,无法一下子找到能从被除数中减去除数的多少倍数时,人们想出了首先罗列除数的倍数,而后从被除数的高位起逐步减去除数的合适倍数,如图13。图中最左边部分,分别罗列了除数423的1~9倍各是多少,对照各个倍数,首先从22028148的前四位中减去423的5倍,并在被除数的右边标出第一次的商“5”。第一次减去除数的5倍后,还余“87”和被除数千位上的“8”合起来是 “878”,423的2倍最接近878……重复前面的过程,直至减的结果得0。这个除法运算的表达,和现行教科书的写法已无本质区别,只不过省略了除数倍数的罗列以及商写的位置有所不同。

图13

和四则运算中的其他运算相比,除法运算需要的思考是最复杂的,因此,人类对于除法笔算方法及其运算过程记录的探索也最为艰难。以732÷6为例,人类不断优化除法运算笔算方法的过程大致呈现了如下的过程

图14

猜你喜欢
被除数除数竖式
商一定小于被除数吗
错误的竖式
竖式趣题
求被除数
除法中的数学问题
竖式填数
除法中的简便计算
你会算吗——以“除数是一位数的除法”为例
被除数可能是几
余数一定要比除数小