Comment déterminer le nombre maxi d’une liste en Python avec la méthode récursive ?

Qu’est-ce la méthode récursive en python ?

La méthode récursive en Python est une technique de programmation qui consiste à utiliser une fonction qui s’appelle elle-même pour résoudre un problème. Cela permet de décomposer un problème complexe en sous-problèmes plus simples qui peuvent être résolus de manière indépendante, puis d’assembler les solutions pour obtenir la solution globale.

Une fonction récursive doit avoir au moins un cas de base (ou cas d’arrêt), qui est une condition pour laquelle la fonction ne s’appelle plus elle-même, et au moins un cas récursif, où la fonction s’appelle elle-même avec des arguments différents pour résoudre un sous-problème.

Lorsqu’une fonction s’appelle elle-même, une nouvelle instance de cette fonction est créée, qui est exécutée en parallèle avec l’instance précédente. Cela signifie que chaque appel récursif crée une nouvelle frame de pile, qui contient des informations sur les variables locales et les paramètres de la fonction en cours d’exécution.

Comment déterminer le nombre maximum d’une liste de nombre en Python avec la méthode récursive ?

Voici un exemple de code en Python qui utilise une méthode récursive pour déterminer le nombre maximum dans une liste de nombres:

def max_num(nums, n):
    # Condition d'arrêt: si la liste ne contient qu'un élément,
    # celui-ci est le maximum
    if n == 1:
        return nums[0]
    else:
        # On appelle récursivement la fonction pour trouver le maximum
        # des n-1 premiers éléments de la liste
        max_n_1 = max_num(nums, n-1)
        # On compare le dernier élément de la liste avec le maximum des n-1 premiers
        if nums[n-1] > max_n_1:
            return nums[n-1]
        else:
            return max_n_1

# Exemple d'utilisation de la fonction
nums = [3, 5, 1, 7, 9, 2]
print(max_num(nums, len(nums))) # affiche 9

Dans ce code, la fonction “max_num(nums, n)” prend en entrée une liste “nums” de nombres et un entier “n” qui indique la longueur de la liste. La fonction utilise une méthode récursive pour déterminer le nombre maximum dans la liste.

La fonction utilise une condition d’arrêt pour gérer le cas où la liste ne contient qu’un élément, dans ce cas celui-ci est le maximum. Sinon, la fonction appelle récursivement elle-même pour trouver le maximum des n-1 premiers éléments de la liste et compare le dernier élément de la liste avec le maximum des n-1 premiers. Si le dernier élément est plus grand, il devient le nouveau maximum, sinon, le maximum des n-1 premiers éléments est retourné.

On appelle la fonction avec la liste de nombre et sa taille pour obtenir le maximum de cette liste.

Pour un aperçu, 👉 cliquez sur une couverture pour feuilleter le livre sur Amazon 📚.


Comment fonctionne la fonction max_list récursive ?

Voici un exemple de code pour déterminer le nombre maximum d’une liste de nombres par la méthode récursive :

def max_list(numbers, n):
    # Si la liste ne contient plus qu'un élément, on renvoie cet élément
    if n == 1:
        return numbers[0]
    # Sinon, on appelle récursivement la fonction pour le sous-ensemble de la liste
    else:
        # On calcule le maximum de la première moitié de la liste en appelant récursivement la fonction avec n/2
        max1 = max_list(numbers, n//2)
        # On calcule le maximum de la seconde moitié de la liste en appelant récursivement la fonction avec n/2
        max2 = max_list(numbers[n//2:], n//2)
        # On renvoie le maximum des deux maxima calculés précédemment
        return max(max1, max2)

# On définit une liste de 4 éléments
numbers = [3, 2, 5, 8]
# On appelle la fonction en lui passant la liste et sa taille
print(max_list(numbers, len(numbers)))

Etape par étape :

  • On définit la fonction max_list qui prend en paramètre la liste de nombre et la taille de cette liste.
  • On vérifie si la taille de la liste est égale à 1, si c’est le cas on renvoie l’unique élément de cette liste.
  • Sinon on calcule le maximum de la première moitié de la liste en appelant récursivement la fonction avec n/2.
  • On calcule le maximum de la seconde moitié de la liste en appelant récursivement la fonction avec n/2.
  • On renvoie le maximum des deux maxima calculés précédemment.
  • On appelle la fonction avec la liste de nombre et sa taille.
  • On affiche le résultat.

Dans ce cas particulier, le nombre maximum de la liste est 8.

Il est important de noter que cette méthode peut être très coûteuse en terme de complexité en temps et en espace, en particulier si la liste est très grande. Il existe des méthodes plus efficaces pour trouver le maximum d’une liste.

En résumé

Pour résumer, la récursion est une technique de programmation qui consiste à décomposer un problème complexe en sous-problèmes plus simples, qui peuvent être résolus de manière indépendante, en utilisant des fonctions qui s’appellent elles-même. Cela permet de simplifier la compréhension et la résolution de certains problèmes en utilisant des étapes simples à comprendre et à suivre.

Pour aller plus loin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Show Buttons
Hide Buttons
Translate »
%d blogueurs aiment cette page :