网格法是数字长乘法的一种替代方法。 在这种方法中,首先构建一个网格,其大小适合要相乘的数字。 如果我们将一个 -位数乘以一个
-位数,则网格的大小为
。 被乘数放置在网格的顶部,以便每个数字都是单元格一列的标题(最高有效位放在左侧)。 乘数放置在网格的右侧,以便每个数字都是单元格一行的一个(尾随)标题(最高有效位放在顶部)。 上图说明了计算
的网格配置。
在实际乘法开始之前,必须为网格中从右上到左下的每个对角线路径绘制线条,以平分每个单元格。 我们的 网格阵列将有 5 条对角线。
现在,我们通过将列顶部的数字和行右侧的数字相乘来计算每个单元格的乘积。 乘积的十位数放在穿过单元格的对角线上方,个位数放在该对角线下方。 如果乘积小于 10,我们在对角线上方输入零。
现在我们准备计算乘积的数字。 我们对每对对角线之间以及第一条(和最后一条)对角线与网格的相应角之间的数字求和。 我们从右下角单元格 (6) 的下半部分开始。 这个数字以网格的角和第一条对角线为界。 由于这是此对角线下方的唯一数字,因此第一个和为 6。 我们将总和沿网格底部放置在最右列下方。
接下来,我们对前一条对角线和下一条较高对角线之间的数字求和: 。 我们将 9 放在网格底部下方,并将 1 进位到下一组对角线的和中。 (为了清晰起见,对角线已延长。)
我们继续对相邻对角线之间以及顶部对角线和左上角之间的数字组求和。 最终乘积由刚刚计算出的网格外部的数字组成。 我们从左侧向下读取数字,然后在底部向右读取以生成最终答案:783996。
虽然乍一看这个过程与长乘法非常不同,但网格法实际上在算法上是等效的。