Ejemplo de torre de Hanoi y secuencia de Fibonacci basada en algoritmo recursivo en Python

@Este artículo proviene del número público: csdn2299, si lo desea, puede prestar atención a la academia de programadores de números públicos. El
ejemplo de este artículo describe la torre Hano de Python y la secuencia de Fibonacci basada en el algoritmo recursivo. Comparta con usted para su referencia, de la siguiente manera:

Aquí usamos 2 ejemplos para aprender el uso de la recursión en python.

  1. Encuentre el número en la secuencia de Fibonacci con el subíndice n (el subíndice cuenta desde 0)

La forma de la secuencia de Fibonacci es la siguiente: 0,1,1,2,3,5,8,13 ...

① Usando el bucle while, el código python2 es el siguiente:

def fib(n):
  a,b=0,1
  count=0
  while count<n:
    a,b=b,a+b
    count=count+1
  print a

Los resultados son los siguientes:

>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5

② Use recursión (la recursión debe tener condiciones de contorno), el código python2 es el siguiente:

def fib(n):
  if n==0 or n==1:#递归的边界条件
    return n
  else:
    return fib(n-1)+fib(n-2)

Los resultados son los siguientes:

>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5

La recursión es uno de los algoritmos que mejor puede expresar el pensamiento computacional. Tomemos f (4) como ejemplo y veamos el proceso de ejecución de la recursividad: el Inserte la descripción de la imagen aquí
mismo programa, usando la recursión Aunque el programa es conciso, la eficiencia de la recursividad es menor que la del bucle y los recursos del sistema El consumo es mayor que el ciclo. Debido a que la recursión se llama capa por capa y devuelve capa por capa después del final, la eficiencia de ejecución de la recursión no es alta. ¿Por qué usar la recursividad? Debido a algunos problemas, no podemos encontrar un esquema de bucle muy obvio, pero es fácil encontrar un esquema recursivo obvio. Por ejemplo, el famoso problema de la Torre de Hanoi.

  1. Hanota

La siguiente imagen es una versión simplificada del juego Hanoi Tower, con solo 4 placas: Las Inserte la descripción de la imagen aquí
reglas del juego Hanoi Tower son las siguientes: el Inserte la descripción de la imagen aquí
código Python2 es el siguiente:

def hanoi(a,b,c,n):
  if n==1:#递归结束条件
    print a,'->',c
  else:
    hanoi(a,c,b,n-1)
    print a,'->',c
    hanoi(b,a,c,n-1)

Resultado de la operación:

>>> hanoi('A','B','C',1)
A -> C
>>> hanoi('A','B','C',2)
A -> B
A -> C
B -> C
>>> hanoi('A','B','C',3)
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C

Muchas gracias por leer
. Cuando decidí estudiar Python en la universidad, descubrí que me comía una mala base informática. No tenía una calificación académica. Esto
no es nada que hacer. Solo puedo compensarlo, así que comencé mi propio contraataque fuera de la codificación. El camino, continúe aprendiendo los conocimientos básicos de Python, el estudio en profundidad de los conceptos básicos de la computadora, resuelto, si no está dispuesto a ser mediocre, ¡únase a mí en la codificación y continúe creciendo!
De hecho, no solo hay tecnología aquí, sino también cosas más allá de esas tecnologías. Por ejemplo, cómo ser un programador exquisito, en lugar de "seda de gallo", el programador en sí es una existencia noble, ¿no? [Haz clic para unirte] ¡ Quieres ser tú mismo, quieres ser una persona noble, vamos!

Publicó 40 artículos originales · elogió 14 · 20,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/chengxun03/article/details/105497901
Recomendado
Clasificación