Académique Documents
Professionnel Documents
Culture Documents
Salsabila BENGHAZOUANI
TD : Complexité Algorithmique
Exercice 1 :
Un tableau X est trié par ordre croissant si x(i) <= x(i+1) pour tout i
1- Elaborer un programme récursif permettant de vérifier qu’un tableau X est trié ou non
2- Estimer sa complexité
Exercice 2 :
Rendre récursive la fonction somme suivante et estime sa complexité
def somme(L) :
s=0 :
for val in L :
s+=val
return s
Exercice 3 :
Pour convertir un nombre entier positif N de la base décimale à la base binaire, il faut opérer par des
divisions successives du nombre N par 2. Les restes des divisions constituent la représentation binaire.
1- Ecrire une fonction récursive « Binaire » permettant d’imprimer à l’écran la représentation binaire d’un
nombre N
Exemple : Binaire(13)=1101
2- Donner la formule récurrente exprimant sa complexité en nombre de divisions. Estimer cette complexité.
Exercice 4:
Un nombre N est pair si (N-1) est impair, et un nombre N est impair si (N-1) est pair.
Ecrire deux fonctions récursives mutuelles pair (N) et impair (N) permettant de savoir si un nombre N est
pair et si un nombre N est impair.
1- Estimer la complexité de la fonction Pair (N) en nombre d’appels récursifs.
Exercice 5:
Etant donné un tableau X composé de N éléments entiers. On voudrait déterminer son maximum par un
programme récursif basé sur le paradigme « diviser pour régner » :
1- En considérant que le maximum est le plus grand entre le dernier terme et le maximum des (n-1) premiers
termes. Estimer sa complexité.
2- En considérant que le maximum est le plus grand entre les maximums des deux moitiés du tableau. Estimer
sa complexité.
1
Lycée Mohamed 5 – CASA Pr.Salsabila BENGHAZOUANI
Q3- Déterminer la complexité de la fonction calcul (x, k), et justifier votre réponse.
2
Lycée Mohamed 5 – CASA Pr.Salsabila BENGHAZOUANI
3
Lycée Mohamed 5 – CASA Pr.Salsabila BENGHAZOUANI
Q1 – Compte tenu de la représentation limitée des nombres réels en machine, deux sommets S1 et S2
supposés être au même endroit peuvent avoir des coordonnées légèrement différentes. Proposer une
fonction sont_proches, prenant comme arguments deux sommets S1 et S2 (représentés par leur vecteur
position) et un flottant positif eps, et qui renvoie True si S1 et S2 sont proches (i.e. si leur distance au sens
de la norme Euclidienne est inférieure `a eps) et False sinon.
Soient les fonctions suivantes :
4
Lycée Mohamed 5 – CASA Pr.Salsabila BENGHAZOUANI
La scène est composée de 350 images. Le plan d’eau est composé de 200 * 200 sommets. Chaque
hauteur hi,j est un flottant codé sur 64 bits.
Q5- Quel est l’espace occupé en m´mémoire vive par l’ensemble des données (en Mo).
Cette équation d’inconnue m ne possède pas de solution analytique : si on veut connaître une approxi-
mation de l’aimantation moyenne dans le matériau, il est donc nécessaire de la résoudre numériquement
par une méthode de recherche de zéro.
Q1) Écrire les instructions nécessaires pour importer exclusivement les fonctions exponentielle (exp) et
tangente hyperbolique (tanh) du module math, ainsi que les fonctions randrange et random du module
random. Ces fonctions seront ainsi utilisables dans tous les programmes que vous écrirez ultérieurement.
5
Lycée Mohamed 5 – CASA Pr.Salsabila BENGHAZOUANI
Q2 ) A partir de l’équation 2, indiquer une équation f(x, t) = 0, d’inconnue x que l’on doit résoudre et écrire
en Python la définition de la fonction f correspondante (paramètres x et t, valeur renvoyée f(x, t)).
Q3) Écrire une fonction dicho(f, t, a, b, eps) qui calcule une valeur approchée à eps près du zéro d’une
fonction f(m, t) de variable x et de paramètre t fixé sur un intervalle [a, b]. On supposera pour simplifier
que la fonction dont on recherche le zéro est continue et s’annule une fois et une seule sur l’intervalle
[a, b].
Q4) Établir l’expression de la complexité temporelle asymptotique de la fonction dicho en fonction de a, b
et eps.
6
Lycée Mohamed 5 – CASA Pr.Salsabila BENGHAZOUANI