6. M´ethode de Horner (suite de l’exercice 2). Notons P=a1Xn−1+... +an−1X+an.
Pour tout k∈[[0, n]], on pose Dk=a1Xk−1+... +ak=
k
X
i=1
aiXk−i(le quotient de Pdivis´e par Xn−k)
(a) Donner une relation simple liant Dket Dk+1, et en d´eduire une relation liant Dk(x) et Dk+1(x).
(b) En remarquant que D0= 0 et Dn=P, proposer un algorithme de calcul de P(x) reposant sur la
relation pr´ec´edente. Quelle est sa complexit´e ?
Remarque : William George Horner ´etait anglais, son nom ne s’´ecrit pas “H¨orner”, mˆeme si de
nombreux auteurs et enseignants font cette faute.
7. Recherche de z´ero par dichotomie.
(a) ´
Ecrire une fonction trouve zero(f,a,b,epsilon) qui prend en argument une fonction fet trois
r´eels a b et ε, avec la garantie que f(a) et f(b) sont de signe oppos´e. Elle devra retourner un r´eel
c∈[a, b] tel que fs’annule ou change de signe dans l’intervalle [c−ε, c +ε] (ou None si c’est
impossible)
(b) Quelle est sa complexit´e, en fonction de a,b, et ε?
(c) Pour quelle raison cette tˆache pourrait-elle ˆetre impossible ?
8. Fibonacci rapide. Fn=(nsi n∈ {0,1}
Fn−1+Fn−2sinon On a vu en TP (avec une d´efinition de Fnl´eg`erement
diff´erente) un algorithme r´ecursif de calcul de Fnde complexit´e lin´eaire.
(a) On pose A=0 1
1 1. V´erifier que ∀n∈N, An=Fn−1Fn
FnFn+1(en posant F−1= 1)
(b) Proposer un algorithme de calcul de Fnde complexit´e logarithmique.
9. Algorithme d’Euclide et suite de Fibonacci
(a) Montrer par r´ecurrence que pour tout n≥1, si a>bet l’algorithme d’Euclide (voir feuille
d’exercices 2) effectue ndivisions euclidiennes pour calculer pgcd(a, b), alors a≥Fn+2 et b≥
Fn+1.
On fixe un n≥1.
(b) En d´eduire que si Fn+2 > a > b, le calcul de pgcd(a, b)effectue au plus n−1 divisions euclidiennes.
(c) En d´eduire que ∀a, b si a < Fn+2 et b < Fn+2, le calcul de pgcd(a, b)effectue au plus ndivisions
euclidiennes.
(d) Conclure quant `a la complexit´e de l’algorithme d’Euclide, en utilisant le fait que
Fn=k(ϕn−(−ϕ)−n), avec ϕ=1+√5
2et k=ϕ
ϕ2+1 .
10. Op´erations dans R[X]. On repr´esentera un polynˆome par la liste de ses coefficients (coefficient domi-
nant en premier)
(a) ´
Ecrire une fonction calculant le produit d’un polynˆome par un scalaire, et ´etudier sa complexit´e.
(b) ´
Ecrire une fonction calculant la somme de deux polynˆomes, et ´etudier sa complexit´e.
(c) ´
Ecrire une fonction calculant le produit de deux polynˆomes, et ´etudier sa complexit´e.
(d) ´
Ecrire une fonction effectuant la division euclidienne de deux polynˆomes, et ´etudier sa complexit´e.
2