長乘法是世界各地小學普遍教授的乘法方法。它可用於任意大小或小數位數的兩個數字。要相乘的數字垂直放置,彼此上下對齊,最低有效數字對齊。上面的數字稱為被乘數,下面的數字稱為乘數。乘法的結果是積。
例如,我們可以計算 。通常選擇位數較多的數字作為被乘數
長乘法演算法首先將被乘數乘以乘數的最低有效數字,以產生部分積,然後對乘數中所有更高位數字繼續此過程。每個部分積都與乘數中的相應數字右對齊。然後將部分積相加
使用此方法的隱含原理如下。乘數可以表示為 。因此,我們首先將 384 乘以 6,然後將 384 乘以 50,然後將兩個結果相加。這會產生正確的答案,因為對於實數集合
而言,乘法對於加法是可分配的。
兩個 位數字的長乘法大約需要
次乘法運算。 這被稱為 複雜度 階數為
或
的時間複雜度。
如前所述,通常選擇位數較多的數字作為被乘數(上面的數字);這種選擇將涉及生成並相加的較少的部分積。但是,如果較長的數字包含零或重複數字,則選擇此數字作為乘數並使用較短的數字作為被乘數可能是有利的。
例如,我們可以計算 。在這種情況下,使用 220002 作為乘數而不是 674 更有效,因為它的三個數字是“0”,三個數字是“2”。乘以“0”僅涉及將下一個部分積向左移動一位,並且在第一個(數字中的個位數)之後,乘以每個連續的“2”僅需要從第一個“
”乘法中複製結果
長乘法方法也可以用於乘兩個多項式。 乘多項式的另一個額外考慮因素是,只有具有相同變數和指數的項才能加在一起。 因此,在計算部分積時,仔細對齊項至關重要。
例如,讓我們計算 。當乘以乘數中的每一項時,應為缺少的
的冪留下空間。這將允許在將所有部分多項式積加在一起時更容易對齊。
數字長乘法的替代方法是格子法。