Page 1

21/03/2010

Introducción y definición del problema

Algoritmos recursivos e iterativos para calcular potencias elevadas

Complejidad computacional

• Se estudiara la aplicación de algoritmos iterativos y recursivos en la solución del problema de calculo de potencias elevadas. • En el problema que nos toco lo que deseamos crear, es un programa que calcule cualquier potencia por mas alta que sea, en un tiempo estimado lo mas pronto posible.

Análisis asintótico de algoritmos

El problema de potencias elevadas pertenece a P porque ambos algoritmos lo resuelven en tiempo polinomial. • La complejidad del algoritmo iterativo es O(3n+5).

g(3n+5) es Ω(f(n)), f(n)=f(3n+5)

• La complejidad del algoritmo recursivo es O(4n+5).

1


21/03/2010

Complejidad

Algoritmos y Pseudocódigos Algoritmo Iterativo:

1. Se piden la base del número a calcular sus potencias y la potencia máxima hasta la cual se calculara. 2. Se escribe que la potencia de 0 es 1 y la potencia de 1 es el mismo número base que se introdujo. 3. Se calcula la potencia 2 multiplicando la base por sí misma, se escribe y se asigna este resultado a una variable última. 4. Se comienzan a calcular las potencias multiplicando la última variable por la base dentro de un ciclo repetitivo y se escribe cada resultado 5. Se continúa haciendo el ciclo hasta que se terminen las potencias, es decir, hasta la potencia máxima.

Pseudocódigo iterativo • • • • • • • • • • • • • • • • • • • • • • •

entero main () { entero largo potencia, i=3, base, exp, ultimo;

//Asignación i, +1 paso

escribir("Introduce una número base para calcular sus potencias: "); leer("%ld", &base); //Asignación base, +1 paso escribir("Introduce el número de su potencia máxima: "); leer("%ld", &exp); //Asignación exp, +1 paso escribir("\n\n Potencia(0) = 1\n"); escribir("Potencia(1) = %ld\n", base); ultimo= base*base; //Operación y asignación, +2 pasos escribir("Potencia(2) = %ld\n", ultimo); mientras (i<=exp) { ultimo*=base; //Operación y asignación, +2n pasos (ciclo mientras) escribir("Potencia(%ld) = %ld\n", i, ultimo); i++; //Asignacion i, +n pasos (ciclo mientras) } pausar(); regresar 0; }

Total= 3n+5

Complejidad

Algoritmo Recursivo:

1. Se divide el problema en 2 módulos: la rutina principal y la rutina para potencias. 2. Se piden la base del número a calcular sus potencias y la potencia máxima hasta la cual se calculara. Sabemos ahora que la rutina de potencias trabajara con estas 2 variables. 3. Se sabe que la potencia de 1 es la base dada. 4. Comenzamos a calcular la potencia del número multiplicando la base con la función de la rutina de potencias pero manejando la potencia máxima a calcular un número menor a la actual. Esto ocasiona que se llame a sí mismo, es decir a la misma rutina, hasta que la potencia máxima sea 1. 5. Teniendo la equivalencia de que la potencia de 1 es la base, se puede multiplicar la base a sí misma consecutivamente saliendo de las subrutinas hasta obtener el resultado. 6. Se escribe el resultado

Pseudocódigo recursivo • • • • • • • • • • • • • • • • • •

entero largo Pot (long, long) Rutina _ principal() { entero largo base, i; escribir(“introduce base: ”) leer(“%ld”, &base) //Asignación base, +1 paso escribir(“introduce la potencia: ”); leer(“%ld”, i); //Asignación i, +1 paso Pot (base , i); //Asignación Pot(), +2 pasos pausar(); regresar 0; } entero largo Pot (base, i) { entero largo potencia , i, ultimo, Pot(base, 1)=base; //Asignación Pot(), +1 paso ultimo=base*Pot (base, i-1); //Aignacion, 2 operaciones y llamada subrutina, +4n escribir("Potencia(%ld) = %ld \n", i, ultimo); } Total= 4n+5

2


21/03/2010

Recomendaciones y conclusiones Conclusión: • Es mas eficiente un algoritmo iterativo. Recomendación: • El algoritmo recursivo puede ser no tan eficiente y ocupa mas espacio de memoria, pero debido a su funcionalidad como rutina, sus propiedades le permiten ser aplicado a muchos programas complejos.

Integrantes del equipo Dora Nelly González Martínez 1449230 Jonathan de la Rosa González 1446426 Joel Ángel Escamilla Montemayor 1443502 Jorge Martínez Chavez 1387357

3

Presentacion casi final  

Proyecto escolar

Read more
Read more
Similar to
Popular now
Just for you