Vous êtes sur la page 1sur 2

PCSI

Partie 1 - Dichotomie
Q1. Écrire une fonction dichotomie(f,a,b,precision), où a,b et precision sont des nombres, et où f est
une fonction continue sur [a, b] telle que f(a).f(b) < 0, qui renvoie une valeur approchée à precision
près d’une solution x de l’équation f (x) = 0, obtenue par dichotomie.
Q2. Écrire une fonction recherche_dichotomique(L,x), où L est une liste de nombres réels rangés dans
l’ordre croissant, où x est un nombre réel et qui renvoie True si x est élément de la liste L et False
sinon, en procédant par dichotomie.
Q3. Quels sont le coût en temps et la complexité dans le pire des cas de cet algorithme en fonction de
la longueur n de L ?
Q4. Écrire une fonction dichotomie2(L), où L contient les valeurs f(0), f(1), . . . , f(p) d’une fonction f
telle que f(0) et f(p) sont de signes opposés, et qui renvoie deux entiers consécutifs i et i + 1 dont les
images par f sont de signe opposés.
Q5. En faisant une interpolation linéaire de f entre i et i + 1, écrire une fonction resolution(L) qui
renvoie une solution approchée de l’équation f (x) = 0.
Q6. Comparer les résultats des deux algorithmes en utilisant la fonction f(x) = x.ex. Commenter.

Partie 2 – La récursivité
La valeur du PGCD (Plus Grand Diviseur Commun) de deux entiers naturels a et b est calculable à
l’aide de l’algorithme d’Euclide : pgcd(a, b) = pgcd(b,r) ou r est le reste dans la division euclidienne de
a par b.
Q1. Ecrire une version itérative de l’algorithme permettant de calculer le pgcd de deux entiers.
Q2. Ecrire une version récursive de l’algorithme permettant de calculer le pgcd de deux entiers.

Partie 3 – Algorithmes glouton


Une personne doit faire une critique de programmes diffusés à la télévision. Elle souhaite
regarder le plus grand nombre de programmes possible dans une journée quel que soit le contenu.
Chaque programme pi (documentaire, film, série...) est caractérisé par un intervalle [di, fi], où di est
l’heure de début et fi l’heure de fin. La différence di – fi représente donc la durée du programme pi.
Les intervalles de temps des différents programmes regardés doivent être disjoints.
Pour organiser le visionnage des programmes, elle utilise un algorithme glouton. Elle trie les
programmes suivant un critère (durée, ou début, ou fin). Ensuite, elle choisit le premier et supprime
parmi les autres ceux qui ne sont pas compatibles avec ce choix. Elle recommence cette étape tant
que la liste des programmes n’est pas vide.
Algorithme 1 : elle trie les programmes par durée croissantes, choisit le plus court, puis le plus
court parmi ceux qui restent et qui sont compatibles, et ainsi de suite.
Algorithme 2 : elle trie les programmes par heures de début croissantes, choisit le programme
commençant le plus tôt, puis le plus tôt parmi ceux qui restent et qui sont compatibles, et ainsi de
suite.

CPGE - Lycée de Bellevue Page 1 / 2 Informatique – DM02


PCSI

Algorithme 3 : elle trie les programmes par heure de fin croissante, choisit le programme qui se
termine le plus tôt, puis le programme qui se termine le plus tôt parmi ceux qui restent et qui sont
compatibles, et ainsi de suite.

Q3. Ecrire les lignes de programme relatives aux trois l’algorithmes.


Q4. Montrer que les algorithmes 1 et 2 ne sont pas optimaux en donnant un contre-exemple. Prouver
que l’algorithme 3 est optimum.

CPGE - Lycée de Bellevue Page 2 / 2 Informatique – DM02

Vous aimerez peut-être aussi