Qual è il modo più efficiente per attuare Karatsuba gran moltiplicazione numero con operandi di ingresso di dimensioni diverse, con dimensioni che non è una potenza di 2 e forse neppure un numero pari ? Riempire gli operandi significa memoria aggiuntiva, e voglio provare a renderlo memoria -efficiente.Karatsuba moltiplicazione da dimensioni diverse, operandi senza motore-di-2
Una delle cose che noto in Karatsuba non in numero pari è che se proviamo a dividere il numero in "metà" il più vicino possibile, una metà avrà m + 1 elementi e l'altra m , dove m = floor (n/2), n è il numero di elementi nel numero split. Se entrambi i numeri hanno la stessa dimensione dispari, allora dobbiamo calcolare prodotti di due numeri di dimensione m + 1, richiedendo n + 1 memoria, invece di n nel caso in cui n è pari. Quindi ho ragione ad indovinare che Karatsuba per le dimensioni dispari potrebbe richiedere un po 'più di memoria rispetto alle dimensioni pari?
[Questa domanda SO precedente] (http://stackoverflow.com/questions/2187123/optimizing-karatsuba-implementation) fornisce alcuni dettagli di implementazione che potrebbero aiutare –