Exemples et Exercices
- On initialise la variable somme
- On itère
- Dans la boucle on ajoute les éléments
Pour la petite histoire, cette somme tend vers π²/6, cela peut être démontré mais ce n'est pas notre propos.
Il existe une autre façon de calculer cette somme. L'idée est la suivante :
On ajoute (dans somme) 1/n² puis la somme des inverses des carrés des entiers de 1 à n-1.
Mais en fait nous n'allons pas utiliser de variable somme. On va renvoyer le résultat. En fait on peut écrire :
Ce qui, dans le code, ce traduit par :
somme_inverse_carres(n) = 1/n**2 + somme_inverse_carres(n - 1)
Nous allons voir comment programmer cela. L'idée est donc que la fonction sum_inverse_carres s'appelle elle même. On désigne cela par le terme de fonction récursive.
Toutefois, il faut que le processus s'arrête.... Ici on appelle la fonction avec n-1 donc la valeur de l'argument décroit. Jusqu'où ???
En fait, dans tout programmation récursive on doit définir un cas de base, un cas simple où le résultat est trivial, et on peut renvoyer ce résultat sans rappeler la fonction.
Ici le cas de base est n = 1, et la valeur renvoyée dans ce cas est 1.