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