Algoritmo de karatsubaEDWIN OSUNA MAHECHAMARIA FERNANDAYISEL TRIGOS
Historia del Algoritmo karatsuba El procedimiento estándar para multiplicar dosnúmeros de n dígitos requiere un número deo...
Historia del Algoritmo KaratsubaEn una semana, Karatsuba, un estudiante de 25 años, encontróun algoritmo divide y vencerás...
Algoritmo karatsubaEl algoritmo de Karatsuba es un procedimientopara              multiplicar             númerosgrandes e...
Algoritmo karatsubaEl paso básico   El paso básico del algoritmo de Karatsuba es una fórmula que nos  permite calcular el ...
Algoritmo KaratsubaEstas fórmulas requieren cuatro multiplicaciones. Karatsubaobservó que podemos calcular xy en sólo tres...
EjemploDigamos que queremos calcular el producto de 1234 con5678. Elegimos la base 10 (B = 10) y m = 2. Entoncestenemos:12...
Próxima SlideShare
Cargando en…5
×

Exposicion algoritmo de karatsuba

2.562 visualizaciones

Publicado el

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.562
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
28
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Exposicion algoritmo de karatsuba

  1. 1. Algoritmo de karatsubaEDWIN OSUNA MAHECHAMARIA FERNANDAYISEL TRIGOS
  2. 2. Historia del Algoritmo karatsuba El procedimiento estándar para multiplicar dosnúmeros de n dígitos requiere un número deoperaciones elementales proporcional a n2, o Θ(n2) enla Notación O grande. En 1952, Andrey Kolmogorovintentó probar que el algoritmo clásico era óptimoasintóticamente, queriendo demostrar así quecualquier algoritmo para esta tarearequeriría Ω(n2) operaciones elementales. En otoño de 1960, Kolmogorov organizó un seminarioacerca de problemas matemáticos de cibernética enla Universidad Estatal de Moscú, donde planteó susuposición de Ω(n2) y otros problemas de complejidadcomputacional.
  3. 3. Historia del Algoritmo KaratsubaEn una semana, Karatsuba, un estudiante de 25 años, encontróun algoritmo divide y vencerás que multiplicaba dos números den dígitos en operaciones elementales, refutando así lasuposición inicial de Kolmogorov. Kolmogorov se sintió muydesilusionado por tal descubrimiento, y lo hizo público en el quesería su siguiente y último encuentro del seminario.El método fue publicado en 1962, en la revista científicasoviética Proceedings of the USSR Academy of Sciences. Elartículo había sido escrito por Kolmogorov, posiblemente encolaboración con Yuri Ofman, pero nombraba a "A. Karatsuba yYu. Ofman" como los autores. Karatsuba sólo se dio cuenta de lapublicación cuando recibió una copia del artículo por parte de laeditorial de la revista.
  4. 4. Algoritmo karatsubaEl algoritmo de Karatsuba es un procedimientopara multiplicar númerosgrandes eficientemente, que fue descubiertopor Anatolii Alexeevitch Karatsuba en 1960 ypublicado en 1962.El algoritmo consigue reducirla multiplicación de dos números de n dígitos acomo máximo multiplicaciones de undígito. Es, por lo tanto, más rápido que elalgoritmo clásico, que requiere n2 productos deun dígito. Si n = 210 = 1024, en particular, elcómputo final exacto es 310 = 59.049 y (210)2 =1.048.576, respectivamente.
  5. 5. Algoritmo karatsubaEl paso básico El paso básico del algoritmo de Karatsuba es una fórmula que nos permite calcular el producto de dos números grandes x e y usando tres multiplicaciones de números más pequeños, cada uno con más o menos la mitad de los dígitos de x e y, más algunas sumas y desplazamientos de dígitos. Supongamos que x e y están representados como cadenas de n dígitos en alguna base B. Para cualquier entero positivo m menor que n, uno puede dividir los dos números dados de la manera siguiente: x = x1Bm + x0 y = y1Bm + y0 donde x0 e y0 son menores que Bm. El producto es, entonces: xy = (x1Bm + x0)(y1Bm + y0) = z2 B2m + z1 Bm + z0 donde z2 = x1y1z1 = x1y0 + x0y1z0 = x0y0
  6. 6. Algoritmo KaratsubaEstas fórmulas requieren cuatro multiplicaciones. Karatsubaobservó que podemos calcular xy en sólo tres multiplicaciones, porel coste de unas sumas adicionales:Supongamos z2 = x1y1Supongamos z0 = x0y0Supongamos z1 = (x1 + x0)(y1 + y0) − z2 − z0ya quez1 = (x1y1 + x1y0 + x0y1 + x0y0) - x1y1 - x0y0 = x1y0 + x0y1Si y1 = 0, sólo hay que realizar dos multiplicaciones puesto que:z2 = 0z0 = x0y0z1 = x1y0
  7. 7. EjemploDigamos que queremos calcular el producto de 1234 con5678. Elegimos la base 10 (B = 10) y m = 2. Entoncestenemos:12 34 = 12 × 102 + 3456 78 = 56 × 102 + 78z2 = 12 × 56 = 672z0 = 34 × 78 = 2652z1 = (12 + 34)(56 + 78) − z2 − z0 = 46 × 134 − 672 − 2652 =2840resultado = z2 × 102×2 + z1 × 102 + z0 = 672 × 10000 + 2840× 100 + 2652 = 7006652

×