




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Programación II, Profesor: angel angel, Carrera: Ingeniería Técnica en Telecomunicación Especialidad Telemática., Universidad: UJAEN
Tipo: Apuntes
1 / 104
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































^
División sucesiva del problema original en uno o varios más pequeños, del mismotipo que el inicial. ^
Se van resolviendo estos problemas más sencillos. ^
Con las soluciones de éstos se construyen las soluciones de los problemas máscomplejos.
1.^
Un problema P se puede resolver conociendo la solución de otro problema Qque es del mismo tipo que P, pero más pequeño.
2.^
Igualmente, supongamos que pudiéramos resolver Q mediante la búsqueda dela solución de otro nuevo problema, R, que sigue siendo del mismo tipo que Q yP, pero de un tamaño menor que ambos.
3.^
Si el problema R fuera tan simple que su solución es obvia o directa, entonces,dado que sabemos la solución de R, procederíamos a resolver Q y, una vezresuelto, finalmente se obtendría la solución definitiva al primer problema, P.
Descomposición delproblema en otrosmás simples
0! = 1 Solución Conocida 1! = 1 * 0! = 1
Resolución deproblemas complejosa partir de otrosmás simples
La llamada recursiva, que expresa el problema originalen términos de otro más pequeño.
El valor para el cual se conoce una solución no recursiva. Caso base: una instancia del problema
cuya solución no
requiere de llamadas recursivas.
Actúa como condición de finalización de la función recursiva.Sin el caso base la rutina recursiva se llamaríaindefinidamente y no finalizaría nunca.
Es el cimiento sobre el cual se construirá la solucióncompleta al problema.
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2).2. Casos bases: fibonacci(1) = 1 y fibonacci(2)=1.3. En cada llamada a la rutina fibonacci se reduce el tamaño del problema en unoo en dos, por lo que siempre se alcanzará uno de los dos casos bases.4. fibonacci(3) = fibonacci(2) + fibonacci(1) = 1 + 1.
Soluciones a las cuatro preguntas:1.
^
El rango de m % n es 0, ..., n-1, por tanto el resto es siempre menor que n. ^
Si m > n, entonces MCD(n, m % n) es menor que MCD(m, n). ^
Si n > m, el resto de dividir m entre n es m, por lo que la primera llamada recursivaes MCD(n, m mod n) es equivalente a MCD(n, m), lo que tiene el efecto deintercambiar los argumentos y producir el caso anterior.
2.^
3.^
4.^
¿Cómo se puede definir el problema en términos de uno o másproblemas más pequeños del mismo tipo que el original?Es evidente que MCD(m, n) ha sido definida en términos de unproblema del mismo tipo, pero justifiquemos que MCD(n, m % n)es de tamaño menor que MCD (m, n):
^
El rango de m % n es 0, ..., n-1, por tanto el resto es siempre menor que n. ^
Si m > n, entonces MCD(n, m % n) es menor que MCD(m, n). ^
Si n > m, el resto de dividir m entre n es m, por lo que la primera llamadarecursiva es MCD(n, m mod n) es equivalente a MCD(n, m), lo que tiene el efectode intercambiar los argumentos y producir el caso anterior.