SlideShare una empresa de Scribd logo
1 de 7
Algoritmo de karatsuba




EDWIN OSUNA MAHECHA
MARIA FERNANDA
YISEL TRIGOS
Historia del Algoritmo karatsuba
 El procedimiento estándar para multiplicar dos
números de n dígitos requiere un número de
operaciones elementales proporcional a n2, o Θ(n2) en
la Notación O grande. En 1952, Andrey Kolmogorov
intentó probar que el algoritmo clásico era óptimo
asintóticamente, queriendo demostrar así que
cualquier      algoritmo      para     esta     tarea
requeriría Ω(n2) operaciones elementales.
 En otoño de 1960, Kolmogorov organizó un seminario
acerca de problemas matemáticos de cibernética en
la Universidad Estatal de Moscú, donde planteó su
suposición de Ω(n2) y otros problemas de complejidad
computacional.
Historia del Algoritmo Karatsuba
En una semana, Karatsuba, un estudiante de 25 años, encontró
un algoritmo divide y vencerás que multiplicaba dos números de
n dígitos en             operaciones elementales, refutando así la
suposición inicial de Kolmogorov. Kolmogorov se sintió muy
desilusionado por tal descubrimiento, y lo hizo público en el que
sería su siguiente y último encuentro del seminario.

El método fue publicado en 1962, en la revista científica
soviética Proceedings of the USSR Academy of Sciences. El
artículo había sido escrito por Kolmogorov, posiblemente en
colaboración con Yuri Ofman, pero nombraba a "A. Karatsuba y
Yu. Ofman" como los autores. Karatsuba sólo se dio cuenta de la
publicación cuando recibió una copia del artículo por parte de la
editorial de la revista.
Algoritmo karatsuba
El algoritmo de Karatsuba es un procedimiento
para              multiplicar             números
grandes eficientemente, que fue descubierto
por Anatolii Alexeevitch Karatsuba en 1960 y
publicado en 1962.El algoritmo consigue reducir
la multiplicación de dos números de n dígitos a
como máximo                 multiplicaciones de un
dígito. Es, por lo tanto, más rápido que el
algoritmo clásico, que requiere n2 productos de
un dígito. Si n = 210 = 1024, en particular, el
cómputo final exacto es 310 = 59.049 y (210)2 =
1.048.576, respectivamente.
Algoritmo karatsuba
El 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
Algoritmo Karatsuba
Estas fórmulas requieren cuatro multiplicaciones. Karatsuba
observó que podemos calcular xy en sólo tres multiplicaciones, por
el coste de unas sumas adicionales:
Supongamos z2 = x1y1
Supongamos z0 = x0y0
Supongamos z1 = (x1 + x0)(y1 + y0) − z2 − z0
ya que
z1 = (x1y1 + x1y0 + x0y1 + x0y0) - x1y1 - x0y0 = x1y0 + x0y1
Si y1 =     0, sólo hay que realizar dos multiplicaciones puesto que:
z2 = 0
z0 = x0y0
z1 = x1y0
Ejemplo
Digamos que queremos calcular el producto de 1234 con
5678. Elegimos la base 10 (B = 10) y m = 2. Entonces
tenemos:

12 34 = 12 × 102 + 34
56 78 = 56 × 102 + 78
z2 = 12 × 56 = 672
z0 = 34 × 78 = 2652
z1 = (12 + 34)(56 + 78) − z2 − z0 = 46 × 134 − 672 − 2652 =
2840
resultado = z2 × 102×2 + z1 × 102 + z0 = 672 × 10000 + 2840
× 100 + 2652 = 7006652

Más contenido relacionado

La actualidad más candente

Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitosSelins Cassiel
 
Modelo e r
Modelo e rModelo e r
Modelo e rgarci17
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rupmireya2022
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelaspineda2
 
Power designer-presentación
Power designer-presentaciónPower designer-presentación
Power designer-presentaciónskrapy95
 
Documentación base de datos
Documentación base de datos  Documentación base de datos
Documentación base de datos Mario De La Cruz
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura1da4
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Mapa mental listas
Mapa mental listasMapa mental listas
Mapa mental listasENSON23
 

La actualidad más candente (20)

PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
diagrama de despliegue
diagrama de desplieguediagrama de despliegue
diagrama de despliegue
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
 
Modelo e r
Modelo e rModelo e r
Modelo e r
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Prototipo
PrototipoPrototipo
Prototipo
 
Wireshark
Wireshark Wireshark
Wireshark
 
Power designer-presentación
Power designer-presentaciónPower designer-presentación
Power designer-presentación
 
Documentación base de datos
Documentación base de datos  Documentación base de datos
Documentación base de datos
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Mapa mental listas
Mapa mental listasMapa mental listas
Mapa mental listas
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 

Destacado

Algoritmos de multiplicación de n dígitos
Algoritmos de multiplicación de n dígitosAlgoritmos de multiplicación de n dígitos
Algoritmos de multiplicación de n dígitosJosé Pino
 
Enfoque de la optimización en el campo de la ingeniería.
Enfoque de la optimización en el campo de la ingeniería.Enfoque de la optimización en el campo de la ingeniería.
Enfoque de la optimización en el campo de la ingeniería.pertuzm
 
Tablas de multiplicar en diagrama de flujo
Tablas de multiplicar en diagrama de flujoTablas de multiplicar en diagrama de flujo
Tablas de multiplicar en diagrama de flujoDiana Florez
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.luismarlmg
 

Destacado (8)

Exposicion de algoritmo
Exposicion de algoritmoExposicion de algoritmo
Exposicion de algoritmo
 
Algoritmos de multiplicación de n dígitos
Algoritmos de multiplicación de n dígitosAlgoritmos de multiplicación de n dígitos
Algoritmos de multiplicación de n dígitos
 
Algoritmos, tablas de multiplicar
Algoritmos, tablas de multiplicarAlgoritmos, tablas de multiplicar
Algoritmos, tablas de multiplicar
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Enfoque de la optimización en el campo de la ingeniería.
Enfoque de la optimización en el campo de la ingeniería.Enfoque de la optimización en el campo de la ingeniería.
Enfoque de la optimización en el campo de la ingeniería.
 
Tablas de multiplicar en diagrama de flujo
Tablas de multiplicar en diagrama de flujoTablas de multiplicar en diagrama de flujo
Tablas de multiplicar en diagrama de flujo
 
Programación dinámica
Programación  dinámicaProgramación  dinámica
Programación dinámica
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.
 

Similar a Exposicion algoritmo de karatsuba

Ecuaciones trigonometricas
Ecuaciones trigonometricasEcuaciones trigonometricas
Ecuaciones trigonometricasxiom20mat
 
Método de integrales trigonométrica
Método de integrales trigonométricaMétodo de integrales trigonométrica
Método de integrales trigonométricaUCC
 
Números Complejos
Números ComplejosNúmeros Complejos
Números ComplejosJaiRoLuCin
 
Matematicas examen de admision uni
Matematicas  examen de admision uniMatematicas  examen de admision uni
Matematicas examen de admision uniJosé Soto Pérez
 
Derivadas logaritmicas y trigonometricas o exponenciales
Derivadas logaritmicas y trigonometricas o exponencialesDerivadas logaritmicas y trigonometricas o exponenciales
Derivadas logaritmicas y trigonometricas o exponencialeskevin lopez
 
Derivación funciones logarítmicas
Derivación funciones logarítmicasDerivación funciones logarítmicas
Derivación funciones logarítmicasErick Guaman
 
Hoja De Trabajo Mate Iv Unidad 3
Hoja De Trabajo  Mate Iv  Unidad  3Hoja De Trabajo  Mate Iv  Unidad  3
Hoja De Trabajo Mate Iv Unidad 3dianuchi
 
Ejemplos metodo-de-lagrange1-ajustar-a-mat-3
Ejemplos metodo-de-lagrange1-ajustar-a-mat-3Ejemplos metodo-de-lagrange1-ajustar-a-mat-3
Ejemplos metodo-de-lagrange1-ajustar-a-mat-3shirleyrojas2108
 
Actividades 1ª evaluación
Actividades 1ª evaluaciónActividades 1ª evaluación
Actividades 1ª evaluaciónanategt
 
Actividades 1ª evaluación
Actividades 1ª evaluaciónActividades 1ª evaluación
Actividades 1ª evaluaciónanategt
 
Actividad competencias básicas
Actividad competencias básicasActividad competencias básicas
Actividad competencias básicasfer060863
 
Semana7 reacciones quimicas
Semana7 reacciones quimicasSemana7 reacciones quimicas
Semana7 reacciones quimicasElias Navarrete
 
Repaso Ecuaciones lineales
Repaso Ecuaciones linealesRepaso Ecuaciones lineales
Repaso Ecuaciones linealesudearrobavirtual
 

Similar a Exposicion algoritmo de karatsuba (20)

2.6 aplicaciones
2.6 aplicaciones2.6 aplicaciones
2.6 aplicaciones
 
Congruencias
CongruenciasCongruencias
Congruencias
 
Probl geom con_ecuac_soluc
Probl geom con_ecuac_solucProbl geom con_ecuac_soluc
Probl geom con_ecuac_soluc
 
Ecuaciones trigonometricas
Ecuaciones trigonometricasEcuaciones trigonometricas
Ecuaciones trigonometricas
 
Método de integrales trigonométrica
Método de integrales trigonométricaMétodo de integrales trigonométrica
Método de integrales trigonométrica
 
Números Complejos
Números ComplejosNúmeros Complejos
Números Complejos
 
Matematicas examen de admision uni
Matematicas  examen de admision uniMatematicas  examen de admision uni
Matematicas examen de admision uni
 
Derivadas logaritmicas y trigonometricas o exponenciales
Derivadas logaritmicas y trigonometricas o exponencialesDerivadas logaritmicas y trigonometricas o exponenciales
Derivadas logaritmicas y trigonometricas o exponenciales
 
Derivación funciones logarítmicas
Derivación funciones logarítmicasDerivación funciones logarítmicas
Derivación funciones logarítmicas
 
Hoja De Trabajo Mate Iv Unidad 3
Hoja De Trabajo  Mate Iv  Unidad  3Hoja De Trabajo  Mate Iv  Unidad  3
Hoja De Trabajo Mate Iv Unidad 3
 
Ejemplos metodo-de-lagrange1-ajustar-a-mat-3
Ejemplos metodo-de-lagrange1-ajustar-a-mat-3Ejemplos metodo-de-lagrange1-ajustar-a-mat-3
Ejemplos metodo-de-lagrange1-ajustar-a-mat-3
 
Semestral
SemestralSemestral
Semestral
 
Guia matematicas
Guia matematicasGuia matematicas
Guia matematicas
 
Ecuaciones 002
Ecuaciones 002Ecuaciones 002
Ecuaciones 002
 
Actividades 1ª evaluación
Actividades 1ª evaluaciónActividades 1ª evaluación
Actividades 1ª evaluación
 
Actividades 1ª evaluación
Actividades 1ª evaluaciónActividades 1ª evaluación
Actividades 1ª evaluación
 
Actividad competencias básicas
Actividad competencias básicasActividad competencias básicas
Actividad competencias básicas
 
Semana7 reacciones quimicas
Semana7 reacciones quimicasSemana7 reacciones quimicas
Semana7 reacciones quimicas
 
2010 i semana 7
2010   i semana 72010   i semana 7
2010 i semana 7
 
Repaso Ecuaciones lineales
Repaso Ecuaciones linealesRepaso Ecuaciones lineales
Repaso Ecuaciones lineales
 

Exposicion algoritmo de karatsuba

  • 1. Algoritmo de karatsuba EDWIN OSUNA MAHECHA MARIA FERNANDA YISEL TRIGOS
  • 2. Historia del Algoritmo karatsuba El procedimiento estándar para multiplicar dos números de n dígitos requiere un número de operaciones elementales proporcional a n2, o Θ(n2) en la Notación O grande. En 1952, Andrey Kolmogorov intentó probar que el algoritmo clásico era óptimo asintóticamente, queriendo demostrar así que cualquier algoritmo para esta tarea requeriría Ω(n2) operaciones elementales. En otoño de 1960, Kolmogorov organizó un seminario acerca de problemas matemáticos de cibernética en la Universidad Estatal de Moscú, donde planteó su suposición de Ω(n2) y otros problemas de complejidad computacional.
  • 3. Historia del Algoritmo Karatsuba En una semana, Karatsuba, un estudiante de 25 años, encontró un algoritmo divide y vencerás que multiplicaba dos números de n dígitos en operaciones elementales, refutando así la suposición inicial de Kolmogorov. Kolmogorov se sintió muy desilusionado por tal descubrimiento, y lo hizo público en el que sería su siguiente y último encuentro del seminario. El método fue publicado en 1962, en la revista científica soviética Proceedings of the USSR Academy of Sciences. El artículo había sido escrito por Kolmogorov, posiblemente en colaboración con Yuri Ofman, pero nombraba a "A. Karatsuba y Yu. Ofman" como los autores. Karatsuba sólo se dio cuenta de la publicación cuando recibió una copia del artículo por parte de la editorial de la revista.
  • 4. Algoritmo karatsuba El algoritmo de Karatsuba es un procedimiento para multiplicar números grandes eficientemente, que fue descubierto por Anatolii Alexeevitch Karatsuba en 1960 y publicado en 1962.El algoritmo consigue reducir la multiplicación de dos números de n dígitos a como máximo multiplicaciones de un dígito. Es, por lo tanto, más rápido que el algoritmo clásico, que requiere n2 productos de un dígito. Si n = 210 = 1024, en particular, el cómputo final exacto es 310 = 59.049 y (210)2 = 1.048.576, respectivamente.
  • 5. Algoritmo karatsuba El 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. Algoritmo Karatsuba Estas fórmulas requieren cuatro multiplicaciones. Karatsuba observó que podemos calcular xy en sólo tres multiplicaciones, por el coste de unas sumas adicionales: Supongamos z2 = x1y1 Supongamos z0 = x0y0 Supongamos z1 = (x1 + x0)(y1 + y0) − z2 − z0 ya que z1 = (x1y1 + x1y0 + x0y1 + x0y0) - x1y1 - x0y0 = x1y0 + x0y1 Si y1 = 0, sólo hay que realizar dos multiplicaciones puesto que: z2 = 0 z0 = x0y0 z1 = x1y0
  • 7. Ejemplo Digamos que queremos calcular el producto de 1234 con 5678. Elegimos la base 10 (B = 10) y m = 2. Entonces tenemos: 12 34 = 12 × 102 + 34 56 78 = 56 × 102 + 78 z2 = 12 × 56 = 672 z0 = 34 × 78 = 2652 z1 = (12 + 34)(56 + 78) − z2 − z0 = 46 × 134 − 672 − 2652 = 2840 resultado = z2 × 102×2 + z1 × 102 + z0 = 672 × 10000 + 2840 × 100 + 2652 = 7006652