S4 : API2
TD N 3
1 Calcul de la complexité
Exercice 1.
Question 1.1. Calculer la complexité de la procédure Pci-dessous en évaluant l’ordre de grandeur du
nombre d’exécutions de l’instruction instruction.
procedure P (n: CARDINAL) ;
begin
for i := 1 to n-1 do
for j := i+1 to n do
for k := 1 to j do
instruction;
end {P};
Exercice 2. On souhaite calculer, pour deux entiers et , .
Question 2.1. Écrire un algorithme pour calculer fonctionnant par multiplications successives qui utilise
la formule:
fois
Question 2.2. Exprimer la complexité de votre algorithme en termes du nombre de multiplications effec-
tuées.
On considère maintenant l’algorithme suivant:
function expoIndienne (x: in Integer; y: in Cardinal) : Integer ;
t,v : Integer ;
u : Cardinal ;
begin
t := x; u := y; v := 1;
while u > 1 do begin
if u mod 2 = 1 then v := t * v ;
t := t * t ;
u := u div 2 ;
end {while} ;
expoIndienne := v * t ;
end {expoIndienne} ;
API2/TD03
1
Question 2.3. Exécuter à la main l’algorithme pour et .
Question 2.4. On souhaite montrer que l’algorithme est correct, c’est-à-dire qu’il calcule bien . Montrer
pour cela que est un invariant de l’algorithme.
Question 2.5. Exprimer la complexité de cet algorithme en termes du nombre de multiplications effectuées.
Exercice 3. Soit un ensemble de nombres réels et soit un autre nombre réel.
Question 3.1. Décrire un algorithme en qui détermine s’il existe deux éléments de dont la
somme vaut exactement .
2 Multiplication de polynômes
Exercice 4. Si l’on a deux polynômes et , on peut les multiplier en utilisant les
multiplications de coefficients suivantes:
pour construire le polynôme
Question 4.1. Donner un algorithme utilisant le paradigme diviser pour régner pour multiplier deux
polynômes dont le degré est borné par et basé sur les formules précédentes.
Question 4.2. Donner et résoudre la récurrence vérifiée par le temps de calcul dans le pire des cas.
Question 4.3. Montrer comment multiplier deux polynômes de degré , et , en utilisant
seulement multiplications de coefficients au lieu de .
Question 4.4. Donner un algorithme utilisant le paradigme diviser pour régner pour multiplier deux
polynômes de degré et basé sur les formules de la question précédente.
Question 4.5. Donner puis résoudre l’équation de récurrence dans le pire cas pour le temps de calcul de
ce nouvel algorithme.
2
1 / 2 100%