La multiplicación rusa, es también llamada multiplicación egipcia (Egyptian) o también multiplicación etíope (Ethiopian), esto según el país de origen. Pero esta multiplicación es más conocida como la rusa, se realiza con dos números que son los que se van a operar, a través de la duplicación de un numero y también a la reducción por la mitad de otro numero. Tal vez ya captaste como funciona este algoritmo.
Existes dos casos de la multiplicación rusa que se tienen que tener en cuenta:
El primer caso es que el segundo factor o multiplicador sea par: Este caso consiste en hacer que los dos numero que van a ser los que se van a multiplicar hagan diferentes operaciones, como duplicar el valor en el primer factor o multiplicando y reducir a la mitad el segundo valor que es el multiplicador, la operación termina cuando el segundo valor o multiplicador tenga el valor de uno.
Ejemplo:
513 32
1026 16
2052 8
4104 4
8208 2
16416 1
El segundo caso es que el segundo factor o multiplicador sea impar: Este caso al igual que el otro caso debe hacer que los dos números que van a ser los que se van a multiplicar hagan diferentes operaciones pero con una diferencia esta vez. Si el multiplicador es impar se le debe restar un uno para que este sea par, por ejemplo si le restamos al 21 un 1 nos quedara 21-1=20, y su mitad seria 10, esto se hace siempre y cuando el multiplicador sea un número impar. La reducción a la mitad del segundo factor o multiplicador se hace juntamente duplicando el valor en el primer factor o multiplicando que nos dará el resultado total.
Ejemplo:
65 21 (1)
130 10
260 5 (1)
520 2
1040 1
A continuación el algoritmo de la multiplicación rusa realizado en java:
int Multiplicacion_Rusa(int a, int b){
int c=0;
while(a!=0){
if(a % 2 != 0){
c = c + b;
}
a = a / 2;
b = b * 2;
}
return c;
}