Klasické násobení označuje násobení dvou přirozených čísel zadaných pomocí zápisů v bázi b, kde b je přirozené číslo větší nebo rovno 2. Binární zápis (b = 2) a desítkový zápis (b = 10) jsou speciální případy zápisu čísel v bázi b s ciframi 0, 1, ..., b-1.

Soustava s přirozeným základem

Každé přirozené číslo n lze právě jedním způsobem vyjádřit ve tvaru:
n = akbk + ak-1bk-1 + ... + a1b1 + a0b0,
kde koeficienty ak, ak-1, ..., a1, a0 nabývají hodnot 0, 1, ..., b-1. Řetězci ak ak-1 ... a1 a0 říkáme zápis čísla n v soustavě se základem b. Připomeňme, že takový zápis se získá hladovým algoritmem: Popišme nejprve algoritmus klasického násobení tak, jak by jej provedl počítač, a poté jej porovnejme s algoritmem "tužky a papíru".

Algoritmus M (multiplication)

Násobíme přirozená čísla U,V, kde un-1 ... u1u0 je zápis U v bázi b a vm-1 ... v1v0 je zápis V v bázi b. Označme W = U × V. Snadno si rozmyslíme, že délka zápisu W v bázi b bude maximálně m+n. Označme wm+n-1 ... w1w0 zápis W.
  1. Inicializace W a i , j   Polož wn-1 = ... = w1 = w0 = 0 a i = 0 a j = 0.
  2. Násobení nulou   Pokud vj = 0, pak polož wi+j = 0 a jdi na krok 6.
  3. Inicializace i   Polož i = 0, k = 0.
  4. Násob a sečti   Polož t = ui × vj + wi+j + k. Pak polož wi+j = t mod b a k = [t/b], kde [x] je největší celé číslo, které je menší nebo rovno x a t mod b = t-b[t/b] (zbytek po celočíselném dělení).
  5. Cyklus na i   Polož i:= i + 1. Pokud i < n, jdi na krok 4. Jinak polož wi+j = k.
  6. Cyklus na j   Polož j := j + 1. Pokud j < m, jdi na krok 2. Jinak konec.
Ilustrujme algoritmus M pro b = 10 a W = U × V, kde U=914=u2u1u0 a V=84=u1u0.
Klasické násobení

Algoritmus M versus násobení na papíře

Při násobení na papíře tvoříme částečné součiny, které příslušně posunuté vlevo sepisujeme pod sebe a na závěr vysčítáme. Na počítači je výhodnější provádět násobení a sčítání současně - tak postupuje algoritmus M. Není těžké si rozmyslet, že t nabývá hodnot 0, 1, ..., b2-1 a přenos (carry) k nabývá hodnot 0, 1, ..., b-1, proto víme, jak velké registry potřebujeme pro implementaci. Počítače navíc pracují s bází 2, krok 2 tedy ušetří práci, nastává průměrně v polovině případů. (Už z předchozí sekce víme, že v binární soustavě je rychlost násobení úměrná počtu nul v binárním zápisu násobitele.) Nevýhodou klasického algoritmu je jeho pomalost. Už pro m = n = 4 je možné násobit U × V rychleji.

Složitost algoritmu M pro bázi b = 2

Definujme nejprve elementární operace:
  1. součet a rozdíl 1-bitových čísel a případně přenos,
  2. součin dvou 1-bitových čísel s 2-bitovým výsledkem,
  3. celočíselné dělení 2-bitového čísla 1-bitovým za předpokladu, že kvocient i zbytek výsledku jsou 1-bitové.
Počet takových operací udává složitost algoritmu. V případě algoritmu M lze dokázat, že složitost násobení čísel s délkami binárních rozvojů m a n je O(m.n), tj. existuje konstanta K>0 taková, že pro libovolná dvě přirozená čísla je složitost jejich násobení algoritmem M menší než K.m.n, kde m a n jsou délky jejich binárních rozvojů.

   
Aritmetika včera a dnes

Klasické násobení
   
Úvod
Násobení
Násobení na prstech
Násobení na papíře
Mechanické pomůcky a tabulky
Počítačové násobení

Dělení
Dělení na papíře
Mechanické pomůcky
Odmocnina

Sčítání

Starověké kultury
Významní matematikové
 
Aplikace na android ke stažení na Google Play stahnout