Python : fonction récursive pour afficher la suite de Lucas

Fonction récursive qui affiche la Suite de Lucas avec Python et matplotlib

La suite de Lucas est une séquence numérique définie par des termes initiaux et une relation de récurrence similaire à celle de la suite de Fibonacci, mais avec des valeurs initiales différentes : L0​=2 et L1=1.
Le code ci-dessous présente une fonction récursive en Python pour générer la suite de Lucas. En partant des deux premiers termes fixés, cette fonction s’appelle elle-même pour construire la suite de Lucas, illustrant ainsi l’élégance des solutions récursives en Python pour des séquences numériques complexes.

def suite_lucas(n):
    if n == 0:
        return 2  # Le premier terme de la suite de Lucas est 2
    elif n == 1:
        return 1  # Le deuxième terme de la suite de Lucas est 1
    else:
        # Pour n > 1, chaque terme est la somme des deux termes précédents
        return suite_lucas(n-1) + suite_lucas(n-2)

# Boucle pour calculer et afficher les 10 premiers termes de la suite de Lucas
for i in range(10):
    print(suite_lucas(i))

Étape 1: La fonction

La fonction suite_lucas en Python débute par définir les cas de base. Si n, le terme de la suite que nous souhaitons calculer, est 0, la fonction retourne 2. Cela correspond au premier terme de la suite de Lucas. Lorsque n est 1, la fonction retourne 1, représentant le deuxième terme de la suite.

Étape 2: Logique Récursive

Pour les termes supérieurs (n > 1), la suite de Lucas est calculée par la somme des deux termes précédents, similairement à Fibonacci. Cette logique récursive est au cœur de l’implémentation. La fonction s’appelle elle-même avec n-1 et n-2 comme arguments, et additionne leurs résultats pour obtenir le terme actuel.

Étape 3: Boucle d’Affichage

Une boucle for est utilisée pour afficher les 10 premiers termes de la suite de Lucas. À chaque itération, la fonction suite_lucas est appelée avec l’indice courant comme argument, et le terme calculé est imprimé.

Visualisation de la Suite de Lucas avec Matplotlib

Pour visualiser la suite de Lucas, nous allons générer les premiers termes de la suite et les afficher sous forme de graphique.


import matplotlib.pyplot as plt

# Définition de la fonction récursive pour calculer la suite de Lucas
def suite_lucas(n):
    if n == 0:
        return 2  # Retourne 2 si n est 0, car c'est le premier terme de la suite de Lucas
    elif n == 1:
        return 1  # Retourne 1 si n est 1, car c'est le deuxième terme de la suite de Lucas
    else:
        # Retourne la somme des deux termes précédents si n est supérieur à 1
        return suite_lucas(n-1) + suite_lucas(n-2)

# Génération des 10 premiers termes de la suite de Lucas à l'aide de la compréhension de liste
termes_lucas = [suite_lucas(i) for i in range(10)]

# Configuration du graphique : les termes de la suite de Lucas sont tracés sur l'axe des ordonnées
plt.plot(termes_lucas, marker='o', linestyle='-', color='b')
# Ajout d'un titre au graphique
plt.title('Visualisation de la Suite de Lucas')
# Nomination de l'axe des abscisses comme 'Index'
plt.xlabel('Index')
# Nomination de l'axe des ordonnées comme 'Termes'
plt.ylabel('Termes')
# Activation de la grille pour une meilleure lisibilité du graphique
plt.grid(True)
# Affichage du graphique
plt.show()

Cette visualisation offre une compréhension claire de la progression de la suite de Lucas, où chaque terme est construit sur les précédents, illustrant la nature récursive de la suite.

Lire aussi ;
Python : fonction récursive pour afficher la suite de Fibonacci.
Le Tri à Bulles avec Python : Guide Étape par Étape.
Le Tri par Sélection : Implémentation et Visualisation avec Python.