Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/12/2011, 18:53
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Recursividad en Python.

La recursividad podría definirse como el arte de hacer que una cosa se llame a sí misma hasta que tú quieras Los ejemplos típicos son la sucesión de Fibonacci, o el algoritmo de ordenación Quicksort.
Para Fibonacci:
Código Python:
Ver original
  1. def fibo(n):
  2.     a, b = 0, 1
  3.     while a < n:
  4.         print a, b
  5.         a, b = b, a + b
Lo he puesto de memoria, creo que está bien Esto muestra los términos de la sucesión de Fibonacci menores que un número n
Esto puede hacerse recursivamente si quieres calcular el término n de la sucesión:
Código Python:
Ver original
  1. def fibo(n):
  2.     return 1 if n <= 2 else fibo(n - 1) + fibo(n - 2)
Si el término es 2 o menos, devolvemos 1, si es mayor calculamos la suma de los dos anteriores términos de la sucesión. Fíjate que si n es 4, por ejemplo, hay que añadir un nivel más de recursión, porque n - 1 sería 3, y por tanto fibo(3) tendría que calcular fibo(2) + fibo(1).
Como podrás imaginar, cuanto mayor sea n mucho mayor será el número de cálculos que habrá que hacer, por eso los algoritmos recursivos no suelen ser muy eficientes a la larga.
PD: El primer snippet no contiene nada de recursión, era sólo para mostrar qué es la sucesión de Fibonacci por si no la conocías, aunque si dices que hay tantas matemáticas puede que sí sepas de qué hablo.
Espero que te haya ayudado.
Saludos (:
PD2: Pregunta mamporrera, si vives en Canarias, ¿cómo es que estudias en la UJI de Castellón?
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red