Tour de Hanoï et séquence de Fibonacci implémentées en Python sur la base d'un algorithme récursif

不言
Libérer: 2018-04-18 14:28:11
original
2536 Les gens l'ont consulté

Cet article présente principalement la Tour de Hanoï et la séquence de Fibonacci implémentée par Python sur la base de l'algorithme récursif. Il analyse les techniques d'implémentation récursives de la Tour de Hanoï et de la séquence de Fibonacci sous forme d'exemples. à cela

Cet article décrit les séquences de la Tour de Hanoï et de Fibonacci implémentées en Python sur la base d'algorithmes récursifs. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Ici, nous utilisons 2 exemples pour apprendre l'utilisation de la récursivité en python.

1. Trouvez le nombre d'indice n dans la séquence de Fibonacci (l'indice compte à partir de 0)

La forme de la séquence de Fibonacci est Comme ceci : 0,1,1,2,3,5,8,13...

① En utilisant la boucle while , le code python2 est le suivant :


def fib(n):
  a,b=0,1
  count=0
  while count<n:
    a,b=b,a+b
    count=count+1
  print a
Copier après la connexion


Les résultats d'exécution sont les suivants :

>>> >0
> >> fib(1)
1
>>> fib(2)
1
>>> 🎜>2
> ;>> fib(4)
3
>>> Utilisez la récursivité (la récursion doit être des conditions aux limites)
, le code python2 est le suivant :

Les résultats en cours d'exécution sont les suivants :

def fib(n):
  if n==0 or n==1:#递归的边界条件
    return n
  else:
    return fib(n-1)+fib(n-2)
Copier après la connexion
>>> fib(0)

0
>>> ;> fib(2)

1

>>> fib(3)

2
>>> >> fib(5)

5


La récursion est l'un des algorithmes qui exprime le mieux la pensée informatique. Prenons f(4) comme exemple et examinons le processus d'exécution de la récursivité. :




Le même programme utilise la récursion. Bien que le programme soit simple, l'efficacité d'exécution de la récursion est inférieure à celle de la boucle et la consommation des ressources du système est supérieure à celle de la boucle. boucle. Étant donné que la récursivité est appelée couche par couche, puis renvoyée couche par couche une fois terminée, l'efficacité d'exécution de la récursivité n'est pas élevée. Alors pourquoi utiliser la récursion ? En raison de certains problèmes, nous ne pouvons pas trouver de solution de boucle très évidente, mais il est facile de trouver une solution récursive évidente. Prenons par exemple le fameux problème de la Tour de Hanoï.


2. Tour de Hanoï

L'image ci-dessous est une version simplifiée du jeu Tour de Hanoï, avec seulement 4 planches :

Les règles du jeu Tower of Hanoi sont les suivantes :

Le code python2 est le suivant :

Résultat de l'exécution :

>>> ','C',1)

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

A -> 🎜>A -> C
def hanoi(a,b,c,n):
  if n==1:#递归结束条件
    print a,&#39;->&#39;,c
  else:
    hanoi(a,c,b,n-1)
    print a,&#39;->&#39;,c
    hanoi(b,a,c,n-1)
Copier après la connexion
B -> C

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

C ->B

A -> 🎜>



Recommandations associées :


Implémentation et application de l'algorithme de réseau neuronal (BP) Python




Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal