Наивный подход к умножению (к примеру) 273 x 12
расширяется из (используя распределительную правило) в качестве (200 + 70 + 3) x (10 + 2)
или:
200 x 10 + 200 x 2
+ 70 x 10 + 70 x 2
+ 3 x 10 + 3 x 2
Идея такого упрощения является снижение умножений на то, что может быть сделано легко. Для вашей начальной школы математика, которая будет работать с цифрами, предполагая, что вы знаете таблицы времени от нуля до девяти. Для библиотек bignum, где каждая «цифра» может быть значением от 0 до 9999 (для удобства десятичной печати) применяются те же правила, что позволяет умножать числа менее 10 000 относительно постоянно).
Следовательно, если n
- это количество цифр, сложность действительно O(n2)
, так как число «постоянных» операций имеет тенденцию к росту с помощью показателя «цифры».
Это верно, даже если ваше определение цифры немного отличается (например, значение от 0 до 9999 или даже является одной из двоичных цифр 0
или 1
).