В детстве учили умножать числа, говорили, что смысл умножения в том, чтобы коротко записать сумму. Например, 4 * 3 это то же, что 4 + 4 + 4.
Сведение умножения к сумме -- самый простой, наивный алгоритм умножения. А теперь я возьму мой рабочий ноут и попробую перемножить этим способом какие-нибудь большие числа, например, 4 * 10000000000:
sum = 0 for i in range(0, 10000000000): sum += 4 print(sum) Если я попробую посчитать то же самое на калькуляторе, то замечу, что лаптоп отрабатывает заметно медленнее, несмотря на то, что он мощнее. Почему? Потому что для умножения чисел существует несколько алгоритмов, а я выбрала самый неэффективный из них. Ещё есть, например, метод Карацубы, или алгоритм на основе преобразования Фурье. В калькуляторах обычно используется второй, и он требует значительно меньше операций, чем наивный.
Как понять, быстро ли работает алгоритм? Можно попробовать измерить время напрямую:
import time start = time.time() my_awesome_alg() end = time.time()