Multiplicacion Rusa en C y Demostracion Por Induccion
-
Upload
diego-carvajal -
Category
Documents
-
view
261 -
download
1
Transcript of Multiplicacion Rusa en C y Demostracion Por Induccion
Universidad de Santiago de Chile
Facultad de Ciencia
Departamento de Matemática y Ciencia de la Computación
Ingeniería Matemática.
Segundo Laboratorio de Aplicaciones a la
Computación
Alumno: Diego Carvajal
Profesor: Mario Fernández
Ayudante: Pascale Cuevas.
Santiago, Octubre del 2013
Multiplicación Rusa
Algoritmo recursivo utilizado
A continuación se puede observar el algoritmo creado con el programa Dev c++, el cualsimula la Multiplicación Rusa enseñada en clases.
int a, b, n;int L,L3;double S = 0, p;cout<< ” A × B = C ” <<endl;cout<< ”Coloque un valor para A” <<endl;cin>> a;cout<< ”Coloque un valor para B” <<endl;cin>> b;for(int i = 0; i< n; i++){
p = pow(2, i);L = a/p;if(L÷2 !=0 ){L3 = b ∗ p;S = S + L3;if(L == 1){cout<< ”El resultado de la multiplicación es C: ” << S <<endl;}}}return0;
}Demostración de la Multiplicación Rusa
A continuación se demostrara la "Multiplicación Rusa", por medio del conocido méto-do llamado Inducción, ya que la multiplicación rusa está de�nida en el conjunto de losnaturales.
Primero de�namos "× ", como la multiplicación habitual, que cumple todos los axio-mas básicos de multiplicación, tal que para dos números n,m ∈ ℵ, se cumple que
n×m
Es la multiplicación habitual de dos números naturales.
1
Por otro lado tenemos a "?", como la multiplicación rusa, tal que
n ? m
Ahora tendremos la siguiente igualdad que tendremos que demostrar, la cual es
n×m = n ? m
Entonces procedemos a ocupar inducción, y para eso tomaremos:1) n = 1
n×m = 1×m = m
En este caso, n pasa a ser el neutro multiplicativo, por otra parte tendremos
n ? m = 1 ? m
Aplicando el algoritmo ruso, la operación anterior se vuelve trivial, lo cual quedaría
1 ? m = m
Por lo tanto el algoritmo ruso se cumple para n = 1.2) Ahora procedemos a tomar como hipótesis a n = k, ∀ k ∈ ℵ, bajo la siguientes opera-ciones
[k/2]× 2m = [k/2] ? 2m
[ ] como la parte entera.Aplicando el algoritmo ruso tendremos que
k ? m = [k/2] ? 2m+ x
x un numero natural, tal que x = m si k es impar y x = 0 si k es par.Por otro lado, para la multiplicación habitual, es inmediato que
k ×m = [k/2]× 2m+ x
Siendo x un numero natural, tal que x = m si k es impar y x = 0 si k es par.Por lo tanto, se concluye de esta hipótesis que
[k/2]× 2m = [k/2] ? 2m
2
Lo cual implica que
k ×m = k ? m
Cuando n=k.
3) Ahora extenderemos esta demostración a n = k + 1, ∀ k ∈ ℵ. Lo cual obtenemoslo siguiente
(k + 1) ? m = [(k + 1)/2] ? 2m+ x
Siendo x = m, si k + 1 es impar, es decir, si k es par y x = 0, si k + 1 es par, es decir, sik es impar.Para k par, resulta que al hacer k ? m tenemos que x = 0, de lo cual teníamos la siguienteigualdad
k ? m = [k/2] ? 2m
Pero por otro lado n = k + 1, obtenemos (k + 1) ? m, con la conclusión anteriormen-te mencionada de los distintos valores que va tomando la variable x, pero notamos que[(k + 1)/2] = (k + 1)/2, es decir, que
(k + 1) ? m = k ? m+ 1 ? m = k ? m+m
Cumpliendo con el axioma de la distributividad.Por el lado de la multiplicación habitual, tenemos inmediatamente por axioma de ladistributividad que
(k + 1)×m = k ×m+m
Luego concluimos que
(k + 1) ? m = k ? m+m = k ×m+m = (k + 1)×m
Entonces, hemos demostrado que para cualquier k par en los naturales, se cumple que
k ×m = k ? m
Análogamente se cumple para cualquier número impar k ∈ ℵ, de lo cual concluimos porinducción que
n×m = n ? m
∀ n,m ∈ ℵ.
3