Maison  >  Article  >  développement back-end  >  Comment écrire un algorithme pour résoudre la séquence de Fibonacci en Python ?

Comment écrire un algorithme pour résoudre la séquence de Fibonacci en Python ?

王林
王林original
2023-09-19 09:18:121682parcourir

Comment écrire un algorithme pour résoudre la séquence de Fibonacci en Python ?

Comment écrire un algorithme pour résoudre la séquence de Fibonacci en Python ?

La séquence de Fibonacci est une séquence classique, qui se définit comme suit : le premier et le deuxième nombres sont tous deux 1, et à partir du troisième nombre, chaque nombre est la somme des deux nombres précédents. C'est-à-dire : 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

En Python, vous pouvez utiliser des boucles ou la récursivité pour écrire des algorithmes permettant de résoudre la séquence de Fibonacci. La mise en œuvre spécifique de ces deux méthodes sera présentée ci-dessous.

Méthode 1 : Utiliser des boucles

L'algorithme d'utilisation de boucles pour résoudre la séquence de Fibonacci est relativement intuitif Le code est le suivant :

def fibonacci(n):
    if n <= 0:
        return "输入有误!"
    elif n <= 2:
        return 1
    else:
        a, b = 1, 1
        for _ in range(n-2):
            a, b = b, a + b
        return b

Dans le code ci-dessus, en définissant les valeurs initiales a et b sur 1, les boucles sont utilisées pour calculer le nième nombre de la séquence de Fibonacci. Dans la boucle, les valeurs de a et b sont mises à jour à chaque fois jusqu'à ce que le nième nombre soit calculé. Renvoie enfin la valeur du nième nombre.

Méthode 2 : Utiliser la récursion

L'algorithme de résolution de la séquence de Fibonacci par récursion est relativement simple. Le code est le suivant :

def fibonacci(n):
    if n <= 0:
        return "输入有误!"
    elif n <= 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

Dans l'implémentation récursive, déterminez d'abord si la valeur n d'entrée est légale si elle est inférieure. supérieur ou égal à 0, un message d'erreur est renvoyé ; si n est égal à 1 ou 2, 1 est renvoyé directement ; sinon, la valeur du nième nombre est résolue en s'appelant récursivement, en calculant la somme des valeurs. des nombres n-1 et n-2 pour obtenir des résultats.

Il convient de noter que la méthode récursive peut poser le problème des calculs répétés et est relativement inefficace. Les performances des algorithmes récursifs peuvent être optimisées en utilisant la mise en cache pour éviter les calculs répétés.

Pour résumer, on peut écrire du code Python en boucle ou de manière récursive pour résoudre la séquence de Fibonacci. La méthode à choisir dépend des besoins réels et des exigences d’efficacité du code.

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!

Déclaration:
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