Jaki jest najskuteczniejszy sposób implementacji Karatsuba multiplikacji dużych liczb z operandami wejściowymi o nierównym rozmiarze i którego rozmiar nie jest potęgą 2, a może nawet nieparzystą liczbą ? Wyparowanie operandów oznacza dodatkową pamięć i chcę sprawić, że będzie ona wydajna.Mnożenie Karatsuba dla nierównych rozmiarów, operatory bez mocy.
Jedną z rzeczy, które zauważyłem w rozmiarze nierównomiernym Karatsuba jest to, że jeśli spróbujemy podzielić liczbę na "połówki" tak blisko, jak to możliwe, jedna połowa będzie miała elementy m + 1, a druga m , gdzie m = piętro (n/2), gdzie n oznacza liczbę elementów w podzielonym numerze. Jeśli obie liczby mają ten sam rozmiar nieparzysty, musimy obliczyć produkty o dwóch liczbach o rozmiarze m + 1, wymagające przechowywania n + 1, w przeciwieństwie do n, w przypadku, gdy n jest parzyste. Czy mam rację, zgadując, że Karatsuba dla dziwnych rozmiarów może wymagać nieco więcej pamięci niż dla nawet rozmiarów?
[To wcześniejsze pytanie WSTĘPNE] (http://stackoverflow.com/questions/2187123/optimizing-karatsuba-implementation) dostarcza pewnych szczegółów dotyczących implementacji, które mogą pomóc –