Aller au contenu

Appels croisés⚓︎

Étudions cet exemple :

🐍 Script Python
def f(n):
    if n == 0:
        return 0
    else:
        return 3 * g(n // 3)

def g(n):
    if n == 0:
        return 0
    else:
        return 2 + f(n * 2)

f et g sont des fonctions récursives mutuelles, en effet la définition de l'une contient un appel à l'autre, donc à elle-même.

Ici, il est possible de prouver la terminaison, mais ce genre d'exercices ne fait pas partie du programme de NSI.