0% ont trouvé ce document utile (0 vote)
42 vues6 pages

Partie 5

Le document traite des algorithmes récurrents, définissant ceux qui dépendent de résultats précédents. Il présente des exemples tels que la somme d'une matrice, la suite de Thue-Morse, le triangle de Pascal et la suite de Fibonacci, avec des exercices pratiques pour chaque concept. Les algorithmes sont illustrés avec des programmes Python pour leur mise en œuvre.

Transféré par

bouhlilamaram35
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues6 pages

Partie 5

Le document traite des algorithmes récurrents, définissant ceux qui dépendent de résultats précédents. Il présente des exemples tels que la somme d'une matrice, la suite de Thue-Morse, le triangle de Pascal et la suite de Fibonacci, avec des exercices pratiques pour chaque concept. Les algorithmes sont illustrés avec des programmes Python pour leur mise en œuvre.

Transféré par

bouhlilamaram35
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

4SI - Programmation

a
202 afa
24/ A N
5
: 20 AD
Partie 5 :
A.S . SA

Les algorithmes récurrents :


(Algorithmique et Programmation)
r
:M
f
Pro

32
4SI - Programmation

Les algorithmes récurrents:

1- Définition :
Un algorithme ou un traitement est dit récurrent s'il utilise un procédé itératif

a
ou récursif pour donner un résultat qui peut dépendre de un ou plusieurs
résultats précédents.

202 afa
Un algorithme récurrent d’ordre n est un
algorithme donnant un résultat qui dépend

24/ A N
de n résultats précédents.

5
1- Exemples de traitements récurrents :
Le calcul de la somme , de la factorielle, de la puissance, du nombre, d’un terme d’une suite, la
: 20 AD
recherche du maximum, le triangle de Pascal, la suite de Fibonacci, le nombre d’or, … sont des
exemples de traitements récurrents.

2.1/ Calcul de la somme :

Exercice 28 (Somme matrice)


A.S . SA

1- Soit M une Matrice de type Mat formée par L lignes et de C colonnes déjà remplie par des
entiers. On demande de faire l’algorithme de la fonction qui calcule et retourne la somme de
la matrice M.
2- Quel est l’ordre de récurrence du traitement développé dans la question précédente ?
r
f :M
Pro

33
4SI - Programmation

2.2/ Traitement récurrent sur les chaines :

Exercice 29 (Suite de Thue-Morse)


C’est une suite binaire définie par : U0 = 0 ou U0 = 1 et par la récurrence suivante : pour
passer de Un à Un+1 on remplace tous les 0 de Un par 01 et tous les 1 par 10.

a
Exemple d’exécution :

202 afa
U0=0 (ou U0=1)
U1=01
U2=01 10
U3=01 10 10 01

24/ A N
Travail demandé :
1- Sachant que U0=0, Calculer le terme U4 de la suite Thue-morse
…………………………………………………………………………………………………………………………………………..

5
2- Quelle est l’ordre de récurrence de cette suite ?
…………………………………………………………………………………………………………………………………………..
: 20 AD
3- Faire le programme Python qui permet de :
• Saisir le premier terme de la suite de Thue Morse (qui peut être 0 ou 1).
• Saisir N , le nombre de termes à calculer (avec N > 2).
• Calculer et afficher les N premiers termes de la suite Thue-morse
A.S . SA
r
f :M
Pro

34
4SI - Programmation

2.3/ Triangle de Pascal :


Le triangle de pascal est la matrice des coefficients (coefficients du binôme) qui sont utilisées
pour développer des expressions comme (a+b)0 , (a+b)1 , … , (a+b)n

Exemple :

a
(a+b)0 = 1 les coefficients : 1
(a+b) = 1*a + 1*b
1 les coefficients : 1,1

202 afa
(a+b)2= 1*a2 + 2*a*b + 1*b2 les coefficients : 1,2,1
(a+b) = 1*a + 3*a *b + 3*a*b +1*b
3 3 2 2 3 les coefficients : 1,3,3,1
(a+b)4= 1*a4 + 4*a3*b + 6*a2*b2 + 4*a*b3 +1*b4 les coefficients : 1,4,6,4,1

Calculer les coefficients pour (a+b)5 ➔ ………………………………………………………………..

24/ A N
Pour N=5, le triangle de pascal affiché est le suivant:

5
: 20 AD
On constate que le calcul de MAT[4,3] fait référence à deux résultats précédents : MAT[3,3] et
A.S . SA

MAT [3,2] donc il s’agit d’un traitement récurrent d’ordre 2.

Comment obtenir un triangle de pascal ?


De façon générale le triangle de pascal (d’ordre N) s’obtient de la façon suivante :
• Initialiser une matrice carré M (d’ordre N) par la valeur 0
• La première colonne de M doit contenir dans chaque cellule, la valeur 1.
r

• Les autres éléments sont déterminés en appliquant la formule suivante :


M[i,j] = M[i-1,j] + M[i-1,j-1] (avec i =numéro de la ligne et j =numéro de la colonne)
:M

Exercice 30 (Triangle de Pascal)


On se propose d’afficher les N premières lignes du triangle de Pascal (avec 3 ≤ N <20). On vous
demande de faire le programme python permettant de remplir et d’afficher les N premières
f

lignes du triangle de Pascal comme le montre l’exemple suivant :


Pro

Exemple d’exécution :

35
4SI - Programmation

2.4/ Suite de Fibonacci :


Leonardo Pisano, connu sous le nom de Fibonacci, étudia la reproduction des lapins (du point de
vue numérique). Il a remarqué qu’un couple de jeunes lapins met une saison pour devenir
adulte, attend une autre saison puis met au monde un couple de jeunes lapins à chaque saison
suivante. Et il a conclu que la reproduction des lapins peut être représentée par la suite
suivante :

a
U1 = 1
U2 = 1

202 afa
Un = Un-1+Un-2

Exercice 31 (Suite de Fibonacci)

24/ A N
1- Quelle est l’ordre de récurrence de la suite de Fibonacci ? Réponse : ……………………………….
2- Donner les valeurs correspondantes aux termes suivants :
U1 U2 U3 U4 U5 U6 U7

5
1 1
2- Pour un entier N donné, donner l’algorithme de la fonction « fibo » qui calcule et renvoie le
Nième terme de la suite de Fibonacci :
: 20 AD
a- en utilisant un traitement itératif
A.S . SA
r

b- en utilisant un traitement récursif


f :M
Pro

36
4SI - Programmation

2.5/ Nombre d’Or :

Exercice 32 (Nombre d’or)


1- Compléter le tableau suivant :

a
202 afa
24/ A N
5
: 20 AD
A.S . SA

Il semble que Vn = Fib(n+1) / Fib(n) converge vers 1,618. Donc la suite de Fibonacci et la
valeur 1,618 sont fortement liées. La valeur à laquelle converge Vn s’appelle le nombre d’or
r

Travail demandé :
:M

Soient deux suites U et V définies comme suit :


U1= 1
U2=1
Un=Un-1 + Un-2 pour n ≥ 3
et
f

V1= 1
Pro

Vn=Un/Un-1 pour tout n ≥ 2

La suite Vn tend vers une limite appelée nombre d’or.


On suppose que le nième terme de la suite V est égal à Vn.
Vn est la valeur approchée du nombre d’or avec une précision e dès que | V n – Vn-1| ≤ e.
On désire faire le programme python qui cherche Vn à 10-4 près et son rang.

37

Vous aimerez peut-être aussi