• Aucun résultat trouvé

Exercice 1 : sous-vecteur minimal

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1 : sous-vecteur minimal"

Copied!
1
0
0

Texte intégral

(1)

Pr´eparation `a l’agr´egation de Math´ematiques — Option C : alg`ebre et calcul formel O. Marguin, 4/05/11

Algorithmes — Exercices

Exercice 1 : sous-vecteur minimal

Etant donn´ e un vecteur v = (v

1

, . . . , v

n

) de Z

n

(n 2), il faut trouver un sous-vecteur minimal de v, c’est-` a-dire deux indices g et d, 1 g d n, tels que la somme v

g

+ v

g+1

+ · · · + v

d

soit la plus petite possible.

Pour 1 j n, on pose :

s(j) = min

1≤i≤j

{v

i

+ · · · + v

j

}

i(j) = max {i / v

i

+ · · · + v

j

= s(j)}

Calculer s(1) et i(1) et ´ ecrire les formules de r´ ecurrence donnant s(j) et i(j) en fonction de s(j 1) et i(j 1) lorsque 2 j n. En d´ eduire un algorithme optimal en Θ(n) additions et comparaisons. Ecrire la proc´ edure correspondante, et tester.

Exercice 2 : puissance rapide

1. Programmer une proc´ edure puissance(x,n) calculant x

n

de fa¸con r´ ecursive, en remarquant que :

si n est pair, alors x

n

= (x.x)

n/2

,

si n est impair, alors x

n

= x.x

n1

.

2. Calculer le nombre de multiplications effectu´ ees au cours du calcul, en fonction de log

2

n et de la somme des chiffres de l’´ ecriture binaire de n.

Exercice 3 : calcul r´ ecursif de (

np

)

On veut ´ ecrire une fonction qui, ´ etant donn´ es deux entiers n et p, 0 p n, renvoie la valeur du coefficient du binˆ ome (

np

) , grˆ ace ` a la formule de r´ ecurrence :

(

np

) = (

np11

) + (

np1

)

1. Programmer et tester la fonction r´ ecursive suivante :

> C:=proc(n,p) # calcule C(n,p) en supposant 0<=p<=n if p=0 or p=n then 1 else C(n-1,p-1)+C(n-1,p) end if end proc;

2. Montrer que la complexit´ e en espace de cet algorithme est au pire Θ(n).

3. Calculer, en fonction de n et p, le nombre d’appels ` a la fonction C que provoque le calcul de (

np

) , puis le nombre d’additions effectu´ ees. En d´ eduire que la complexit´ e en temps, dans le pire des cas, est exponentielle.

4. Ajouter ` a la proc´ edure l’option remember. Comparer les performances, et expliquer en ´ etudiant les complexit´ es en espace et en temps de cette deuxi` eme version.

5. Programmer une troisi` eme version, optimale, en utilisant une autre formule de r´ ecurrence.

Références

Documents relatifs

En appliquant le premier principe de la thermodynamique pour un syst`eme ouvert, exprimer la vitesse d’´ejection des gaz en fonction de , C , 4 , , , et. est une barre homog`ene

Je lance suffisamment mal pour que la probabilit´ e que la fl´ echette tombe dans une zone donn´ ee soit proportionnelle ` a l’aire de cette zone.. Je joue dans une fˆ ete foraine o`

Ce probl` eme mod´ elise un jeu de fl´ echettes, avec quelques libert´ es par rapport ` a la r´ ealit´ e pour les besoins de la cause.. Je d´ ecide de lancer 20 fl´ echettes

Il reste ` a appliquer le th´ eor` eme de Dirichlet, qui dit qu’une fonction 2π − p´ eriodique, continue, et de classe C 1 par morceaux, est limite uniforme de polynˆ omes

Cette correction a ´ et´ e r´ edig´ ee par Fr´ ed´ eric Bayart et est disponible ` a l’adresse suivante : http://mathweb.free.fr Si vous avez des remarques ` a faire, ou pour

Il explore tout le programme d’alg` ebre lin´ eaire, et constitue une r´ evision de premier choix dans cette optique.. Premi`

On utilise d’abord un th´ eor` eme du type th´ eor` eme de F´ ejer, ou de Weierstrass, pour prouver que h est limite uniforme de polynˆ omes trigonom´ etriques P n (uniquement

Dresser le tableau de variations de la fonction ϕ en pr´ ecisant les limites aux bornes de son ensemble de d´