关于作者

 中科院力学所

双位数乘法——印度口诀秒解

力学园地
2015年12月26日
《力学园地》编辑部:
在你们网站里读过一篇文章,介绍了中国古代的算筹和筹算,很有意思。能不能再介绍一些其他文明古国在数学方面的情况呢?

 读者 天鱼儿

2014-07-25

MF2U7PL6Q8~BRF5H]ANY}4X

双位数乘法——印度口诀秒解

近日来,网上流传着一个“印度乘法口诀”。和我们中国的乘法表不同,这个乘法表延伸到19以内,即所谓“19*19”乘法表。尽管其难度比“九九乘法表”更高,但配合特别的方法,却是更容易心算出正确的答案。

网传的印度乘法表,其乘法表除了大家熟知的九以内的乘法之外,更增加了从十到十九的相乘结果。由于双位数的乘法比个位数的要复杂得多,印度人想出一个有效的心算方法。其方法是:首先将被乘数与乘数的个位数相加,然后将之乘十;再把被乘数的个位数与乘数的个位数相乘,最后把两组数加起来便得出答案。

例如:13*12=?(这里,13是被乘数,12是乘数)
第一步:
把被乘数(13)跟乘数的个位数(2)加起来,即有13+2=15;
第二步:
把第一步的答案乘以10,即有15*10=150;
第三步:把被乘数的个位数(3)乘以乘数的个位数(2),即有2*3=6;
第四步:第二步+第三步,即有150+6=156;
总算法:(13+2)*10 +(2*3)=156。
这种算法不难用代数的方法作出如下的解释:
我们将被乘数和乘数的个位数字(3和2)分别用AB来表示,所以13*12可以表示为(10+A)*(10+B)。按照二项式乘法规则,我们将其展开可以得到:(10+A)*(10+B)=100+10*(A+B)+A*B=10*(10+A+B)+A*B;可以看出前面一项是被乘数加上乘数的个位数乘10,第二项就是被乘数的个位数与乘数的个位数的乘积。所以,这种心算方法是正确和可行的。
上面例1的个位数字的数值比较小,求和与求积都仍是个位数。如果数值较大,这个方法依然可用,但需要进位。这里,我们再举一个例子:16*18=?
第一步:
把(16)跟(8)加起来,即16+8=24;
第二步:
把第一步的答案乘以10,即24*10=240;
第三步:把(6)乘以(8),即6*8=48;
第四步:第二步+第三步, 240+48=288;
总算法:(16+8)*10 +(6*8)=288。
对于这种“十几乘十几”的算法,有人还给出一个口诀:头乘头,尾加尾,尾乘尾。其含义是:乘法的结果是一个三位数,百位上的数值是由“头乘头”给定(对于本情况,该位上的数值总是“1”),十位上的数值由“尾加尾”给定(上面例1中,该位上的数值是5;上面例2中,该位上的数值是14,这里的十位数字要进位,这样百位上的数值就变为2),个位上的数值由“尾乘尾”给定(上面例1中,该位上的数值是6;上面例2中,该位上的数值是48,这里的十位数字要进位,这样十位上的数值就变为8).于是,我们很快就可以得出:

13*12=156

16*18=288

你觉得有趣吧?

(龙翔根据网络资料撰写)