S4 : API2 TD N 3

publicité
S4 : API2
TD N 3
1 Calcul de la complexité
Exercice 1.
Question 1.1. Calculer la complexité de la procédure P ci-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
Question 2.1. Écrire un algorithme pour calculer
la formule :
et , .
fonctionnant par multiplications successives qui utilise
fois
Question 2.2. Exprimer la complexité de votre algorithme en termes du nombre de multiplications effectué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
pour cela que
est un invariant de l’algorithme.
#%$'&)(
. Montrer
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
Question 3.1. Décrire un algorithme en
somme vaut exactement .
,.-0/2143657/98
un autre nombre réel.
qui détermine s’il existe deux éléments de
:
dont la
2 Multiplication de polynômes
;<>=@?
Exercice 4. Si l’on a deux polynômes
multiplications de coefficients suivantes :
pour construire le polynôme
AB=@C , on peut les multiplier en utilisant les D
et
EGFIH
EOPH
EQPH
ES H
;KJLANM
;KJLCM
?RJLANM
?RJLCM
EGF O =UT EO = E QWV = ES
X
Y
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.
Z [\]_^ et a` ]cb , en utilisant
Question 4.3. Montrer comment multiplier deux polynômes de degré ,
seulement multiplications de coefficients au lieu de .
d
X
Y
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
Téléchargement