Exercices corrigés sur les fonctions récursives -TD1-

27 Apr 2019 27 Apr 2019 36670 vues ESSADDOUKI Mostafa 4 min de lecture

Analyse de fonctions récursives - Série 2

Dans cette section, nous continuons l'analyse de fonctions récursives pour comprendre leur comportement et déterminer ce qu'elles calculent. La récursivité est un concept fondamental qui permet d'exprimer élégamment de nombreux algorithmes.

Exercice 1

Analyse de fonction récursive - Somme cumulée

Niveau : Débutant

Expliquez la fonctionnalité de la fonction suivante :

fonction fct1(x, y)
    SI x == 0 ALORS
        retourne y
    SINON
        retourne fct1(x-1, x+y)
    FINSI
def fct1(x, y):
    if x == 0:
        return y
    else:
        return fct1(x-1, x + y)
Exercice 2

Analyse de fonction récursive - Logarithme entier

Niveau : Intermédiaire

Expliquez la fonctionnalité de la fonction suivante :

fonction fct2(n)
    SI n == 1 ALORS
        retourne 0
    SINON
        retourne 1 + fct2(n/2)
    FINSI
def fct2(n):
    if n == 1:
        return 0
    else:
        return 1 + fct2(n // 2)
Exercice 3

Analyse de fonction récursive - Conversion binaire

Niveau : Intermédiaire

Expliquez la fonctionnalité de la fonction suivante :

fonction fct3(n)
    SI n == 0 ALORS
        retourne
    FINSI
    fct3(n/2)
    Ecrire(n % 2)
def fct3(n):
    if n == 0:
        return
    fct3(n // 2)
    print(n % 2, end="")

Récapitulatif

FonctionFonctionnalitéExemple
fct1(x, y)Retourne (x(x+1)/2) + yfct1(5, 2) = 17
fct2(n)Retourne ⌊log₂(n)⌋fct2(8) = 3, fct2(15) = 3
fct3(n)Affiche la représentation binaire de nfct3(21) affiche "10101"
Conseils pour l'analyse de fonctions récursives
  1. Identifier le cas de base (condition d'arrêt) et ce qu'il retourne.
  2. Analyser l'appel récursif : comment les paramètres évoluent-ils ?
  3. Comprendre comment le résultat de l'appel récursif est combiné avec d'autres valeurs.
  4. Pour les fonctions qui affichent, noter l'ordre des appels et des affichages.
  5. Tester avec de petites valeurs pour vérifier la compréhension.
Points clés à retenir
  • Une fonction récursive s'appelle elle-même jusqu'à atteindre un cas de base.
  • La somme des entiers 1+2+...+x peut s'exprimer récursivement comme x + somme(x-1).
  • Le logarithme entier compte le nombre de divisions par 2 avant d'atteindre 1.
  • La conversion binaire utilise les divisions successives par 2 et les restes.
  • L'ordre des opérations (avant ou après l'appel récursif) est crucial pour le résultat.
Sortie
// La sortie apparaîtra ici…
Prêt · Ctrl+Entrée pour exécuter

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.