Recursividad - PowerPoint PPT Presentation

1 / 9
About This Presentation
Title:

Recursividad

Description:

Departamento de Ciencias de la Computaci n ... Porque la respuesta es recursiva. O, en forma muy simple, un problema es recursivo, si su soluci n pasa por ... – PowerPoint PPT presentation

Number of Views:559
Avg rating:3.0/5.0
Slides: 10
Provided by: eduardog2
Category:
Tags: muy | recursividad

less

Transcript and Presenter's Notes

Title: Recursividad


1
Recursividad
  • Existe un conjunto de problemas que se pueden
    definir recursivamente
  • Qué significa recursividad?
  • Difícil de explicar ... Porque la respuesta es
    recursiva ?
  • O, en forma muy simple, un problema es recursivo,
    si su solución pasa por autoejecutarse (con otros
    parametros)
  • Un ejemplo de recursividad?
  • Contar a un grupo de personas...

2
Recursividad...Ejemplo
  • Contar a un grupo de personas...
  • Solución NO recursiva...
  • Los ponemos en fila, y partiendo del primero,
    contamos secuencialmente
  • 1, 2, 3, 4, 5, 6, ...., n
  • Solución recursiva.
  • Si no hay nadie, entonces hay 0, sino hay uno
    contar al resto
  • 1 contar(n-1)
  • 1 (1 contar(n-1))

3
Reglas para la recursividad
  • Conocer el caso trivial (fin de la recursividad)
  • Si no hay nadie, entonces hay cero
  • Definir la recursividad
  • sino, hay uno contar al resto

4
Trabajo en clases
  • Definir el algoritmo recursivo para
  • Saber la cantidad de dígitos de un número entero.
  • Imprimir en binario el valor de un número.
  • Los números binarios sólo usan 0 y 1 para
    representar sus valores.
  • Ejemplos
  • 13 1101
  • (1231 22021120) 841 13

5
Solución
  • Cantidad de dígitos.
  • Regla 1 Es equivalente saber la cantidad de
    dígitos de un numero positivo que de uno
    negativo, por ende asumiremos que trabajamos con
    uno positivo
  • La cantidad de dítigos de 109887 es la misma que
    de 109887.
  • Si el numero es menor que 10, entonces tiene 1
    dígito
  • Sino, tiene 1 más la cantidad de dígitos del
    número dividido 10

6
Código Java
  • public int contardigitos(int valor)
  • if (valor lt 10)
  • return 1
  • return (1 contardigitos(valor/10)

7
Imprimir en binario el valor de un número
  • Los números binarios sólo usan 0 y 1 para
    representar sus valores.
  • Ejemplos
  • 13 1101
  • (1231 22021120) 841 13
  • Un posible algoritmo sería
  • Si el numero es 0 o 1 su valor en binario es
    conocido, es si mismo
  • Sino, es la representación binaria de la mitad
    del numero, seguido de un 0 o un 1 si es el
    numero es par o impar respectivamente

8
Código Java
  • public String enbinario(int x)
  • if (x 0) return 0
  • if (x 1) return 1
  • if (n2 0) // es par
  • return (enbinario(x/2)0)
  • if (n2 1) // es impar
  • return (enbinario(x/2)1)

9
Problemas propuestos
  • Modificar la solución para número de dígitos para
    que funcione con números reales.
  • Calcular xn en forma recursiva.
Write a Comment
User Comments (0)
About PowerShow.com