Universit´e Bordeaux I
Master Informatique – Semestre 1 – INF 301
Compl´ements de Math´ematiques et
d’Algorithmique
21 d´ecembre 2005, 8h30 – 11h30 (3 heures)
Responsable : Alexandre Zvonkine. Tous documents autoris´es
Bar`eme envisag´e : 3 + 2 + 3 + 2 + 2 + 4 + 3 + 1 + 2 + 2 = 24
Probl`eme : Division des polynˆomes
I. Polynˆomes eciproques modulo xN
Pour comprendre de quoi on parle, commen¸cons par deux exemples.
Exercice 1. (a) Diviser 1 par le polynˆome 1 2x; effectuer la division
jusqu’au degr´e 7.
(b) Diviser 1 par le polynˆome 1 xx2; effectuer la division jus-
qu’au degr´e 8. (Avez-vous remarqu´e quels sont les coefficients du polynˆome-
r´esultat ?)
(c) Multiplier 1 2xpar le polynˆome obtenu dans la question (a), puis
1xx2par le polynˆome obtenu dans la question (b). Que remarque-t-on ?
On peut remarquer que la division de 1 par un polynˆome donne comme
r´esultat une s´erie infinie. Si on s’arrˆete au degr´e N1 et on ´elimine tous les
termes de la s´erie `a partir du degr´e Non obtient un polynˆome eciproque
modulo xNdu polynˆome initial.
Notation. Soit un polynˆome P(x) avec le terme constant non nul. Pour
le polynˆome Q(x) de degr´e N1 tel que
P(x)·Q(x) = 1 mod xN
on utilisera la notation Q=P1
N.
Exemple. On peut v´erifier que
1
1x= 1 + x+x2+x3+x4+x5+ (les termes de degr´e sup´erieur `a 5) ,
1
d’o`u
(1 x)1
6= 1 + x+x2+x3+x4+x5.
Dans l’exercice 1, nous avons calcul´e (1 2x)1
8et (1 xx2)1
9.
Exercice 2. Soit un polynˆome Pde degr´e m1. Montrer que la complexit´e
de calcul de P1
npar la division “habituelle” est O(mn). Pour m=non
obtient la complexit´e O(n2).
L’exercice suivant est un lemme pr´eparatoire pour construire un algo-
rithme plus performant calculant P1
N.
Exercice 3. Soit un polynˆome P, et soit un polynˆome Sde degr´e n1
tel que P·S= 1 mod xn(c’est-`a-dire, S=P1
n). Montrer que pour le
polynˆome
T= 2SP·S2(1)
on obtient P·T= 1 mod x2n.
Ainsi, en connaissant S=P1
non peut passer directement au polynˆome
P1
2n, `a savoir,
P1
2n=Tmod x2n.
Ceci veut dire que, en faisant le calcul de Tselon la formule (1) il faut juste
n´egliger tous les termes de degr´e sup´erieur ou ´egal `a 2n.
Notons M(n) la complexit´e de multiplication des polynˆomes de degr´e n.
Exercice 4. Quelle est la complexit´e du calcul de P1
2n`a partir de P1
n
selon la formule (1) ?
Algorithme A. Soit un polynˆome Pde degr´e mavec le terme constant
a06= 0. On fait les it´erations suivantes :
T= 1/a0;
n= 1 ;
tantque n < N faire
T= 2TP·T2mod x2n;
n= 2n;
fin-tantque
retourner Tmod xN;
2
Exercice 5. Montrer que l’algorithme A calcule P1
N.
Exercice 6. (a) Montrer que la complexit´e de l’algorithme A est born´ee
par O(M(N) log N).
(b) Expliquer informellement pourquoi M(n) v´erifie la propri´et´e
M(n)2M(n/2) .
En utilisant cette propri´et´e montrer que la complexit´e de l’algorithme A est
en fait O(M(N)).
On remarque que la complexit´e ne d´epend pas de m= deg P.
II. Division euclidienne
Soient deux polynˆomes A(x) et B(x), de degr´es deg A=met deg B=n,
m > n > 0 ; on cherche deux polynˆomes Q(x) et R(x) tels que
A(x) = Q(x)·B(x) + R(x),(2)
o`u deg Q=mnet deg R < deg B. Rappelons que de tels polynˆomes
existent et sont uniques.
Exercice 7. (a) Pour les polynˆomes A(x) = x53x4+x3+ 6x2+ 1 et
B(x) = x32x2+x+3 trouver les polynˆomes Q(x) et R(x) correspondants.
(C’est-`a-dire, diviser A(x) par B(x).)
(b) Quelle est la complexit´e de l’algorithme “usuel” de division des po-
lynˆomes (en fonction de m= deg Aet n= deg B) ?
L’objectif des exercices suivants est de trouver un algorithme plus per-
formant pour faire une division euclidienne des polynˆomes.
Convention. Le degr´e du polynˆome Rest born´e par n1 ; mais, pour
faciliter la pr´esentation, nous allons, dans ce qui suit, le consid´erer comme
polynˆome de degr´e ´egal `a n1, en ajoutant si n´ecessaire les termes man-
quants avec les coefficients nuls.
efinition. Soit P(x) = a0+a1x+a2x2+... +anxnun polynˆome de
degr´e n. On d´efinie le miroir de Pcomme mir(P) = xnP(1
x).
Exercice 8. ´
Ecrire explicitement le polynˆome mir(P). Expliquer pourquoi
la complexit´e de calcul de mir(P) pour un polynˆome Pde degr´e nest O(n).
3
Exercice 9. Montrer que l’´egalit´e (2) est ´equivalente `a l’´egalit´e suivante :
mir(A) = mir(Q)·mir(B) + xmn+1mir(R) (3)
o`u Rest consid´er´e comme polynˆome de degr´e n1.
L’´egalit´e (3) peut aussi s’interpr´eter comme
mir(A) = mir(Q)·mir(B) mod xmn+1 .
D’o`u l’algorithme suivant :
Algorithme B.
1. calculer mir(A) et mir(B) ;
2. calculer mir(B)1
kpour k=mn+ 1 en utilisant
l’algorithme A ;
3. calculer mir(Q) = mir(A)·mir(B)1
kmod xk;
4. calculer Q;
5. calculer Q·B;
6. calculer R=AQ·B.
Exercice 10. Montrer que l’algorithme B calcule les polynˆomes Qet R
recherch´es dans la formule (2). Quelle est la complexit´e de cet algorithme
(en fonction de m) ?
Fin de l´
enonc´
e
4
1 / 4 100%