Каков наиболее эффективный способ реализации Karatsuba умножения больших чисел с входными операндами неравного размера, размер которых не степень 2 и, возможно, даже не четное число? Заполнение операндов означает дополнительную память, и я хочу попытаться сделать ее эффективной с точки зрения использования памяти.
Одна из вещей, которую я заметил в нечетном размере Карацубы, заключается в том, что если мы попытаемся разделить число на «половины» как можно ближе к четному, одна половина будет иметь m + 1 элемент, а другая m, где m = floor(n/2), n — количество элементов в разбиваемом числе. Если оба числа имеют один и тот же нечетный размер, то нам нужно вычислить произведения двух чисел размера m+1, что требует хранения n+1, в отличие от n в случае, когда n четно. Итак, я прав, предполагая, что Карацуба для нечетных размеров может потребовать немного больше памяти, чем для четных размеров?