Ejercicios del Capítulo 19

Volver al índice.

Cuando vayas respondiendo a las preguntas que vienen a continuación, recuerda que recursividad no es simplemente ``repetir'' una tarea, una y otra vez. Eso lo puede hacer un bucle. Un bucle no es recursividad. La recursividad es cualquier cosa que se define con sus propios términos.

  1. ``Para entender lo que es recursividad, primero tenemos que entender lo que es recursividad.'' Explica el chiste. (Pregunta si no lo has entendido y si tampoco lo que viene a continuación)
  2. Colocamos dos espejos uno frente al otro. Explica de qué forma sus reflejos demuestran la propiedad de la recursividad.
  3. Explica cómo es que el Marketing Multi-Nivel (MLN) usa la recursividad. Si no conoces qué es el MLN, búscalo por internet. Además, un consejo, evita el MLN
  4. Explica cómo la función de ``barrido'' en el clásico buscaminas puede hacerse con recursividad. Si no lo sabes, pregunta!
  5. Explica cómo podemos encontrar la salida de un laberinto empleando la recursividad.
  6. Utiliza el navegador Chrome y crea tu propia captura de pantalla para:
    http://juliamap.googlelabs.com
    Usa la rueda del ratón para hacer zoom sobre una zona interesante del fractal. Copia la URL y pégala aquí.
  7. (5 pts) Dada la siguiente definición, escribe una función recursiva f(n) que toma un valor n y devuelve el valor para f. (Si estás viendo esto en un archivo de texto, la línea siguiente te parecerá un criptograma. Mejor mírala online o en el libro para que veas el formato adecuado de la ecuación.)
    $f_{n} = \begin{cases} 6 & \text{if } n = 1, \\ \frac{1}{2}f_{n-1}+4 & \text{if } n > 1. \end{cases}$
    Luego, escribe un bucle for que imprima las respuestas para los valores de n del 1 al 10. Debería parecerse a esto:
    n= 1 , a= 6
    n= 2 , a= 7.0
    n= 3 , a= 7.5
    n= 4 , a= 7.75
    n= 5 , a= 7.875
    n= 6 , a= 7.9375
    n= 7 , a= 7.96875
    n= 8 , a= 7.984375
    n= 9 , a= 7.9921875
    n= 10 , a= 7.99609375
    
    La función no debería tener ninuna declaración print, ni tampoco un bucle. El bucle for debería ir fuera de la función y llamarla para obtener los resultados e imprimirlos.
  8. (5 pts) Escribe un código recursivo que imprima los primeros 10 términos de la siguiente secuencia. (Si estás viendo esto en un archivo de texto, la línea siguiente te parecerá un criptograma. Mejor mírala online o en el libro para que veas el formato adecuado de la ecuación.)
    $f_{n} = \begin{cases} 1 & \text{if } n = 1, \\ 1 & \text{if } n = 2, \\ f(n-1)+f(n-2) & \text{if } n > 2. \end{cases}$