Vous êtes sur la page 1sur 1

Université d’Aix-Marseille - Faculté des Sciences

Licence d’Informatique - Licence de Mathématiques


ENSIN2U1 - Programmation

TD no 4

Fonctions et procédures récursives

1. Suites et récursion
1.1. On considère la suite un définie par u1 = 1 et un = 3.un−1 + 2 pour n > 1. Ecrire une fonction
récursive qui prend en paramètre un entier n et calcule la valeur de un .
1.2. On considère la suite vn définie par v1 = 1, v2 = 2 et vn = 2.vn−1 − vn−2 pour n > 2. Ecrire une
fonction récursive qui prend en paramètre un entier n et calcule la valeur de vn .

2. Voici 4 façons de calculer la somme des n premiers cubes d’entiers.


2 2
– utiliser la formule SC(n) = n (n+1)
4 .
– utiliser la formule SC(n) = Σi=ni=1 i 3
.
– utiliser la formule récurrente SC(1) = 1 et SC(n) = n3 + SC(n − 1).
– utiliser le fait que c’est le carré de la somme des n premiers entiers : SC(n) = (SE(n))2 avec
SE(1) = 1 et SE(n) = n + SE(n − 1).
Pour chacune des quatre méthodes données ci-dessus, écrire la fonction correspondante qui calcule la
somme des n premiers cubes d’entiers.

3. La formule du binôme de Newton est : ∀j ≥ 1, Cj0 = Cjj = 1 et ∀i > 0, ∀j > i, Cji = Cj−1
i i−1
+ Cj−1 .
i
Ecrire la fonction récursive qui fait le calcul de Cj .

4. Calcul récursif de la parité


4.1. On peut déterminer si un nombre n est pair de la façon suivante : si n = 0 alors n est pair et si
n = 1 alors n est impair, sinon la parité de n est celle de n − 2.
En suivant ce principe, écrivez la fonction récursive qui détermine si un nombre est pair ou pas.
Comment modifier cette fonction pour qu’elle détermine si un nombre est impair ou pas ?
4.2. Un entier n est pair s’il est égal à 0 ou si n − 1 est impair. Un entier n’est pas impair s’il est égal à
0 mais est impair si n − 1 est pair.
En suivant ce principe, écrivez les fonctions récursives pair et impair qui déterminent si un nombre
est pair ou pas et si un nombre est impair ou pas.

5. Calcul récursif de puissances


5.1. Écrire une fonction récursive prenant en entrées deux entiers strictement positifs x et p, et calculant
xp .
5.2. La méthode précédente peut être améliorée par l’approche suivante. On suppose maintenant que
l’entier p est une puissance de 2, c’est-à-dire qu’il existe un entier k tel que p = 2k . On remarque
que xp = xp/2 .xp/2 . Sur la base de ce constat, on peut déduire une nouvelle méthode, beaucoup
plus efficace que la précédente, pour calculer xp . Il suffit de calculer xp/2 , puis de calculer son carré.
Par exemple, si x = 5 et p = 8, on a xp = 58 = 54 .54 = (54 )2 = (52 .52 )2 = ((52 )2 )2 = ((51 .51 )2 )2 =
(((51 )2 )2 )2 = (((5)2 )2 )2 = ((25)2 )2 = (625)2 = 390625. On a ainsi eu uniquement 3 multiplications
réaliser à la place de 8 (ou 7) selon la méthode de base. En exploitant cette approche, donnez une
fonction récursive réalisant le calcul de xp .

6. Un palindrome est une figure de style désignant un texte ou un mot dont l’ordre des lettres reste le
même qu’on le lise de gauche à droite ou de droite à gauche, comme pour les mots ”radar ” et ”ressasser”.
En supposant qu’un tableau de n caractères code un mot, écrire une fonction récursive qui détermine si
ce mot est un palindrome ou pas. Attention, un palindrome n’a pas nécessairement un nombre de lettres
impair.

Vous aimerez peut-être aussi