Exercice 1 [Un calcul simple] Exercice 2 [Décomposition d`un

publicité
MHT812 - Master
Université Bordeaux 1
Mathématiques
Devoir Surveillé, 3 mars 2010
Durée 2h00. Documents interdits.
Année 2009-2010
Exercice 1 [Un calcul simple]
On considère l'algorithme suivant.
Algorithme 1.
Entrées: Deux entiers naturels a et b.
Sorties: ?
1:
2:
3:
y ←− 0.
tantque b 6= 0 faire
si b impair alors
y ←− y + a
4:
nsi
5:
b ←− bb/2c
6:
si b 6= 0 alors
7:
8:
9:
10:
11:
a ←− 2a
nsi
n tantque
Retourner
y.
1) Que fait cet algorithme ? Justier avec précision.
2) Déterminer le nombre d'exécutions de la boucle tant que en fonction de b.
Exercice 2 [Décomposition d'un polynôme a en base p]
Soient
A
ou égal à
n < km.
de
n, p
et
un polynôme unitaire de
On veut écrire
a
A[X] de degré inférieur
k un entier. On suppose
sous la forme
a = a0 + a1 p + · · · + ak−1 pk−1
(1)
où pour tout
à
a un polynôme
A[X] de degré m,
un anneau commutatif unitaire,
i ∈ {0, . . . , k−1}, ai est un polynôme de A[X] de degré inférieur strictement
m.
1) Montrer que si une telle décomposition existe, alors une division euclidienne permet
de trouver
a0 .
2) Montrer l'existence et l'unicité de polynômes ai
de degré strictement inférieur à
m
vériant (1).
3) Écrire un algorithme permettant de calculer les ai
de
a
par
p,
de reste
façon récursive sur
r
et de quotient
q
pour trouver
en faisant la division euclidienne
a0 ,
puis se rappelant lui-même de
q.
4) On veut ici estimer la complexité algébrique de cet algorithme. On utilise la division
euclidienne classique. Montrer que l'algorithme rend bien les
opérations dans
1on
m
de
A
1.
A[X] de degré n par
2m(n − m + 1) opérations dans A.
rappelle que la division d'un polynôme de
A[X]
peut se faire en au plus
ai , en au plus (km)2 − km2
un polynôme unitaire de degré
Exercice 3 [Algorithme de Garner]
m1 , . . . , mr (r > 1) sont r entiers > 1 prea1 , . . . , ar sont r entiers quelconques, le système de
Le théorème des restes chinois dit que si
miers entre eux deux à deux, et si
congruences
(S) : x ≡ ai mod mi (1 6 i 6 r)
Q
M = 16i6r mi par
a une solution unique, dénie modulo
x=
(2)
r
X
ai (Mi−1 mod mi )Mi ,
i=1
où
Mi =
1)
Y
mj .
j6=i
Trouver les solutions de
(S)
lorsque
r = 3, m1 = 7, m2 = 11, m3 = 13, a1 = 3,
a2 = 6, a3 = 7.
On considère l'algorithme suivant.
Algorithme 2. Algorithme de Garner
Entrées: Les mi , les ai .
Sorties: x unique solution de (S) dans l'intervalle [0, M [
pour i = 2 à r faire
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
2)
Ci ←− 1
pour j = 1 à i − 1 faire
u ←− m−1
j mod mi
Ci ←− u · Ci mod mi
n pour
n pour
u ←− a1 , x ←− u
pour i = 2 à r faire
u ←− (ai − x) · Ci mod mi
Q
x ←− x + u · i−1
j=1 mj
n pour
Retourner
x.
Appliquer cet algorithme à
r = 3, m1 = 7, m2 = 11, m3 = 13, a1 = 3, a2 = 6,
a3 = 7.
3)
Montrer que tout nombre y ∈ [0, M [ s'écrit de façon unique sous la forme y =
b1 + b2 m1 + b3 m1 m2 + · · · + bn m1 · · · mn−1 , avec bi ∈ [0, mi [.
4) Chercher à déterminer les bi associés au x cherché en fonction des mi et des ai , et
montrer que l'algorithme de Garner donne bien l'unique solution de (S) qui appartient
à l'intervalle [0, M [.
5) Quel est l'avantage de cet algorithme sur le calcul direct utilisant (2) ?
Téléchargement