长乘法是世界各地小学普遍教授的乘法方法。它可用于任意大小或小数位数的两个数字。要相乘的数字垂直放置,彼此上下对齐,最低有效数字对齐。上面的数字称为被乘数,下面的数字称为乘数。乘法的结果是积。
例如,我们可以计算 。通常选择位数较多的数字作为被乘数
长乘法算法首先将被乘数乘以乘数的最低有效数字,以产生部分积,然后对乘数中所有更高位数字继续此过程。每个部分积都与乘数中的相应数字右对齐。然后将部分积相加
使用此方法的隐含原理如下。乘数可以表示为 。因此,我们首先将 384 乘以 6,然后将 384 乘以 50,然后将两个结果相加。这会产生正确的答案,因为对于实数集合 而言,乘法对于加法是可分配的。
两个 位数字的长乘法大约需要 次乘法运算。 这被称为 复杂度 阶数为 或 的时间复杂度。
如前所述,通常选择位数较多的数字作为被乘数(上面的数字);这种选择将涉及生成并相加的较少的部分积。但是,如果较长的数字包含零或重复数字,则选择此数字作为乘数并使用较短的数字作为被乘数可能是有利的。
例如,我们可以计算 。在这种情况下,使用 220002 作为乘数而不是 674 更有效,因为它的三个数字是“0”,三个数字是“2”。乘以“0”仅涉及将下一个部分积向左移动一位,并且在第一个(数字中的个位数)之后,乘以每个连续的“2”仅需要从第一个“”乘法中复制结果
长乘法方法也可以用于乘两个多项式。 乘多项式的另一个额外考虑因素是,只有具有相同变量和指数的项才能加在一起。 因此,在计算部分积时,仔细对齐项至关重要。
例如,让我们计算 。当乘以乘数中的每一项时,应为缺少的 的幂留下空间。这将允许在将所有部分多项式积加在一起时更容易对齐。
数字长乘法的替代方法是格子法。