ALGO 1.1 œ Correction TD N°5.
Calcul du pgcd de deux nombres a et b strictement positifs par l'algorithme d'Euclide. Variables ab : entier q
Calcul-du-PGCD.pdf
Calcul du PGCD. Définition : Le PGCD (Plus Grand Diviseur Commun) de deux entiers est le plus grand nombre capable de diviser 2 entiers de manière complète
Chapitre 4. - Autour du PGCD de deux entiers
Son étude s'impose donc. Nous verrons aussi comment écrire sur la TI-Nspire le calcul des coefficients de Bézout. Sommaire. Chapitre 4. Autour du PGCD
Exercice Bonus : Une calculette à PGCD
Nous allons construire un circuit qui réalise le calcul du PGCD pour les entiers positifs (8 commun diviseur abrégé en général PGCD
Pgcd résultant
http://www.ens-lyon.fr/denif/data/algos_calcul_formels_mpri/2007/cours/Cours10.pdf
ALGORITHME E POUR LA RECHERCHE P.G.C.D. DANS S
L'algorithme d'Euclide-pour le calcul du P.G.C.D de deux entiers-est si ancien que le mot algorithme est utilise outre son sens habitue1 en informatique
PGCD ET ECRITURE FRACTIONNAIRE I) Définitions : 1) Multiple et
Exemple : Calculer le PGCD de 210 et de 91 par la méthode des soustractions successives. B) Méthode des divisions successives : Soient a et b deux nombres
Algorithme du demi-pgcd
On considère le calcul du pgcd de deux polynômes R0 et R1 à coefficients dans un L'algorithme d'Euclide permet de calculer un 2 pgcd de R0 et R1 en ...
TD dexercices type brevet. CORRECTION : PGCD
Pour avoir un nombre maximum de personnes il faut prendre le. PGCD de 84 et 147. Pour le calculer
Arithmétique Étude des nombres entiers Calcul du PGCD
- Connaître et utiliser un algorithme donnant le PGCD de deux entiers. (algorithme des soustractions algorithme d'Euclide). - Calculer le PGCD de deux entiers.
Algorithme du demi-pgcd
Bruno Grenet
Mars2018
1Introduction : algorithme d"EuclideOn considère le calcul du pgcd de deux polynômesR0etR1à coefficients dans un corps1K,
de degrés respectifsn0etn1Euclide(R0,R1):
Entrée : deux polynômes R
0et R1avecdeg(R1)
Sortie : un pgcd de R
0et R1
1.i=0 2.T antque Ri+16=0 :
3.(Qi,Ri+2) DivEucl(Ri,Ri+1)
4.i i+1
5.Renv oyerRi
Soitkla valeur finale dei, de telle sorte queRk+1=0 etRj6=0 pour toutjk. Définition1.1.
On appelle respectivementsuite des quotientsetsuite des restesde(R0,R1)les suites (Qi)0i
pour touti. En particulier, pour toutdsupérieur ou égal au degré du pgcd deR0etR1, il existe
un unique indicejtel quedeg(Rj)d>deg(Rj+1). Cette remarque simple est utilisée à de nombreuses reprises dans la suite.Étant donnée la valeur deQià chaque étape, on peut obtenir la suite des restes grâce au
produit matrice-vecteur (les entrées étant des polynômes) Ri+1 R i+2 =0 1 1Qi Ri R i+1 .1. On peut définir le pgcd de polynômes à coefficients dans un anneau, mais il faut alors prendre quelques précautions.
Le choix de ne travailler qu"avec des polynômes sur un corps est un choix de simplicité.2. SiGest un pgcd deR0etR1, alors tout multiple deGpar une constante non nulle deKen est également un.
1 De plus, le pgcd deRi+1etRi+2est égal au pgcd deRietRi+1. On noteTila matrice0 11Qi
On a alors pour touti R i+2 =TiT1T0R0 R 1 En particulier,
G 0 =Tk1T1T0R0 R 1 oùGest un pgcd deR0etR1. L"objectif de l"algorithme dit du " demi-pgcd » est de fournir un algorithme rapide de calcul de la matriceM=Tk1T0, de laquelle on déduit le pgcd deR0etR1avec deux multiplications et une addition. On peut également déterminer les coefficients de Bézout sans calcul à partir de
M. En effet, l"égalité précédente montrer queG=M00R0+M01R1, c"est-à-dire que la première
ligne de la matriceMcontient les coefficients de Bézout. On appelleMlamatrice de pgcd de R0et R1.
2Algorithme du " demi-pgcd »
Dans l"algorithme d"Euclide, la suite des degrés des restes décroît strictement dedeg(R0) àdeg(G). L"idée générale de l"algorithme du " demi-pgcd » est de factoriser le produitM=
T k1T0 en deux sous-produits, de telle sorte que chaque sous-produit fasse baisser le degré des restes de moitié. Plus exactement, on écrit M=Tk1Tj+1TjTj1T0
où l"indicejest choisi tel quedeg(Rj)12 deg(R0)>deg(Rj+1). L"utilité de laisser une des matricesTjen dehors de la factorisation apparaîtra claire ultérieurement. On noteD=Tj1T0 etN=Tk1Tj+1de telle sorte queM=NTjD. La matriceMsera alors calculée en calculant en premier lieuN,TjetDpuis en effectuant leur produit. On remarque que par définition,(TjD)R0R1
=Rj+1 R j+2. Or la correction de l"algorithme d"Euclide repose sur le fait que le pgcd deR0etR1soit le même que le pgcd deRj+1etRj+2. Ainsi, la matriceNest la matrice de pgcd deRj+1etRj+2. On peut donc la calculer par un appel récursif à l"algorithme de calcul de matrice de pgcd. Quant àD, ce n"est pas une matrice de pgcd. Appliquée àR0etR1, elle fournit un couple de restes(Rj,Rj+1)tels quedeg(Rj)12 deg(R0)>deg(Rj+1). On appelle cette matrice lamatrice de demi-pgcd de R0et R1. i L"algorithme du " demi-pgcd » est constitué de deux algorithmes. L"algorithmeMatricePgcd permet de calculer la matrice de pgcd de deux polyômes, étant donnée leur matrice de demi-pgcd.
L"algorithme DemiPgcdcalcule lui la matrice de demi-pgcd. 2.1L"algorithmeMatricePgcd
On commence par décrire l"algorithmeMatricePgcd, plus simple, qui fait appel à l"algorithme DemiPgcdqui sera décrit ensuite.
2 MatricePgcd(R0,R1):
Entrée : deux polynômes tels quedeg(R0)>deg(R1). Sortie : la matrice de pgcd de R
0et R1.
1.D DemiPgcd(R0,R1)
2.Rj R j+1 DR0 R 1 3.Si Rj+1=0, renvoyerD
4.(Qj,Rj+2) DivEucl(Rj,Rj+1)
5.Tj 0 1
1Qj 6.Si Rj+2=0, renvoyerTjD
7.N MatricePgcd(Rj+1,Rj+2)
8.Renv oyerNTjD
Théorème2.1.Soitn=deg(R0), etH(n)la complexité de l"algorithmeDemiPgcd. On suppose que l"algorithmeDemiPgcdest correct, et que sa complexitéH(n)est telle queH(n)/nest croissante et H(n)M(n)oùM(n)est la complexité du produit de deux polynômes de taille n. Alors l"algorithmeMatricePgcdest correct, et son temps de calcul G(n) =O(H(n)). Démonstration.
La correction de l"algorithmeMatricePgcdest claire d"après celle deDemiPgcd, les étapes3. et6. jouant les rôles decas de base. La complexité de l"étape1. estH(n)par définition. On sait quedeg(Rj)n/2>deg(Rj+1), donc l"appel récursif à l"étape7. est effectué sur deux polynômes de degré étape est borné parG(n/2). Les autres étapes, division euclidienne comprise, coûtent un nombre
constant de multiplications de polynômes de degré au plusn. Ainsi, G(n)G(n/2) +H(n) +cM(n)
pour une certaine constantec. PuisqueH(n)M(n)par hypothèse, on peut réécrireG(n) G(n/2) +c0H(n)oùc0=c+1. On en déduit que pourhG(n)G(n/2h) +c0h1å
j=0H(n/2j). PuisqueH(n)M(n)n, on peut écrireH(n) =na(n)pour une certaine fonctiona(n)1. AlorsåjH(n/2j) =åj(n/2j)a(n/2j)na(n)åj1/2j2H(n), en bornanta(n/2j)para(n). En prenanth=dlog(n)e, on obtientG(n) =O(H(n)). Remarque.Dans l"algorithmeMatricePgcd, on peut obtenir sans calcul supplémentaire le pgcd En particulier,
G 0 =Tk1T1T0R0 R 1 oùGest un pgcd deR0etR1. L"objectif de l"algorithme dit du " demi-pgcd » est de fournir un algorithme rapide de calcul de la matriceM=Tk1T0, de laquelle on déduit le pgcd deR0etR1avec deux multiplicationset une addition. On peut également déterminer les coefficients de Bézout sans calcul à partir de
M. En effet, l"égalité précédente montrer queG=M00R0+M01R1, c"est-à-dire que la première
ligne de la matriceMcontient les coefficients de Bézout.On appelleMlamatrice de pgcd de R0et R1.
2Algorithme du " demi-pgcd »
Dans l"algorithme d"Euclide, la suite des degrés des restes décroît strictement dedeg(R0)àdeg(G). L"idée générale de l"algorithme du " demi-pgcd » est de factoriser le produitM=
T k1T0 en deux sous-produits, de telle sorte que chaque sous-produit fasse baisser le degré des restes de moitié. Plus exactement, on écritM=Tk1Tj+1TjTj1T0
où l"indicejest choisi tel quedeg(Rj)12 deg(R0)>deg(Rj+1). L"utilité de laisser une des matricesTjen dehors de la factorisation apparaîtra claire ultérieurement. On noteD=Tj1T0 etN=Tk1Tj+1de telle sorte queM=NTjD. La matriceMsera alors calculée en calculant en premier lieuN,TjetDpuis en effectuant leur produit.On remarque que par définition,(TjD)R0R1
=Rj+1 R j+2. Or la correction de l"algorithme d"Euclide repose sur le fait que le pgcd deR0etR1soit le même que le pgcd deRj+1etRj+2. Ainsi, la matriceNest la matrice de pgcd deRj+1etRj+2. On peut donc la calculer par un appel récursif à l"algorithme de calcul de matrice de pgcd. Quant àD, ce n"est pas une matrice de pgcd. Appliquée àR0etR1, elle fournit un couple de restes(Rj,Rj+1)tels quedeg(Rj)12 deg(R0)>deg(Rj+1). On appelle cette matrice lamatrice de demi-pgcd de R0et R1. i L"algorithme du " demi-pgcd » est constitué de deux algorithmes. L"algorithmeMatricePgcdpermet de calculer la matrice de pgcd de deux polyômes, étant donnée leur matrice de demi-pgcd.
L"algorithme DemiPgcdcalcule lui la matrice de demi-pgcd.2.1L"algorithmeMatricePgcd
On commence par décrire l"algorithmeMatricePgcd, plus simple, qui fait appel à l"algorithmeDemiPgcdqui sera décrit ensuite.
2MatricePgcd(R0,R1):
Entrée : deux polynômes tels quedeg(R0)>deg(R1).Sortie : la matrice de pgcd de R
0et R1.
1.D DemiPgcd(R0,R1)
2.Rj R j+1 DR0 R 13.Si Rj+1=0, renvoyerD
4.(Qj,Rj+2) DivEucl(Rj,Rj+1)
5.Tj 0 1
1Qj6.Si Rj+2=0, renvoyerTjD
7.N MatricePgcd(Rj+1,Rj+2)
8.Renv oyerNTjD
Théorème2.1.Soitn=deg(R0), etH(n)la complexité de l"algorithmeDemiPgcd. On suppose que l"algorithmeDemiPgcdest correct, et que sa complexitéH(n)est telle queH(n)/nest croissante et H(n)M(n)oùM(n)est la complexité du produit de deux polynômes de taille n. Alors l"algorithmeMatricePgcdest correct, et son temps de calcul G(n) =O(H(n)).Démonstration.
La correction de l"algorithmeMatricePgcdest claire d"après celle deDemiPgcd, les étapes3. et6. jouant les rôles decas de base. La complexité de l"étape1. estH(n)par définition. On sait quedeg(Rj)n/2>deg(Rj+1),donc l"appel récursif à l"étape7. est effectué sur deux polynômes de degré étape est borné parG(n/2). Les autres étapes, division euclidienne comprise, coûtent un nombreG(n)G(n/2) +H(n) +cM(n)
pour une certaine constantec. PuisqueH(n)M(n)par hypothèse, on peut réécrireG(n) G(n/2) +c0H(n)oùc0=c+1. On en déduit que pourh
lui-même. En effet, à l"étape3. le pgcd estRjet à l"étape6. c"estRj+1. Enfin, si on suppose que
l"étape7. renvoie récursivement non seulement la matriceNmais aussi le pgcdGdeRj+1etRj+2, il suffit de renvoyerGà l"étape8.Si l"objectif final est d"obtenir le pgcd, le calcul de la matrice de pgcd est inutile. Si aux étapes3.,
6. et8. on renvoie le pgcd au lieu de la matrice de pgcd (et que l"appel récursif calcule donc le pgcd
queRj+1etRj+2), il est clair que l"on obtient encore un algorithme correct, de même complexitéasymptotique. Cette variante permet d"économiser quelques calculs (produits de matrices à l"étape
8. et calcul final du pgcd à partir de la matrice de pgcd).
3 Cependant, on note que la matrice de pgcd permet également de déduire (sans calcul) lescoefficients de Bézout associés aux polynômes d"entrée, ce que ne permet pas la variante évoquée
ci-dessus.2.2Calcul du demi-pgcd
On s"intéresse maintenant au calcul de la matriceDdu demi-pgcd deR0etR1. Comme pour l"algorithme général, on factorise la matriceDen deux sous-produits. On écritD=Tj1Ti+1Ti(Ti1T0)
où l"indiceiest choisi cette fois-ci tel que deg(Ri)34 deg(R0)>deg(Ri+1).Pour exploiter pleinement l"idée du " diviser pour régner », deux problèmes se posent : d"une
part, les deux matrices de la factorisation ne sont pas des matrices de demi-pgcd, et d"autre part les polynômes auxquels on les applique sont de taille de l"ordre den. On aimerait les calculer comme matrices de demi-pgcd de polynômes de degrés environn/2. Cela est rendu possible par la remarque suivante : siAetBsont deux polynômes de degrés éventuellement grands, mais proches, leur quotient ne dépend que des coefficients de poids fort deAetB. Par exemple, siA=3X100+4X9910X98etB=X992X98+, leur quotient3X+10de degré1et ne dépend que des deux coefficients dominants deAetB. Ainsi, ce quotient est égal
au quotient dans la division deA?=3X2+4X10parB?=X2. On peut aussi remarquer qu"en appliquant l"algorithme d"Euclide au couple(A,B)ou au couple(A?,B?), le premier reste dans les deux cas a le même coefficient dominant.Le lemme suivant quantifie ces remarques.ddt
R 0R 1R 2. ..R ?iR iR iFigure 1- Illustration du lemme2.2.Lemme2.2.
SoitR0de degrén0t+2d(t,d>0) etR1de degrén1avecn0>n1t+d, et R?0=R0quoXtetR?1=R1quoXt. Soit(Ri)iet(R?i)iles suites des restes respectives de(R0,R1)et (R?0,R?1), et j tel quedeg(R?j)d>deg(R?j+1).Alors pour0ij+1,
R i=R?iXt+R iavec( deg(R?i) =nit et deg(R i)puisque le degré du reste est strictement inférieur au degré deRi+1. Par unicité du quotient et
du reste,Qi=Q?i,Ri+2=R?i+2Xt+R i+2etdeg(R i+2)Corollaire2.3.
SoitAetBdeux polynômes ettetddeux entiers tels qued(deg(A)t)/2e=det deg(A)>deg(B)t. SoitA?=AquoXtetB?=BquoXt, etD?la matrice de demi-pgcd deA?et B?.Alors D
?AB=Rj R j+1 où(Ri)iest la suite des restes de(A,B)etdeg(Rj)t+d>deg(Rj+1).Démonstration.
On remarque que la condition sur le degré deAsignifie quedeg(A)est égal àt+2d out+2d1. Le résultat est trivial lorsquedeg(B)DemiPgcd(R0,R1) :
Entrée : deux polynômes tels quedeg(R0)>deg(R1).Sortie : la matrice de demi-pgcd de R
0et R1.
1.m dn/2e, oùn=deg(R0)
2.Si deg (R1) 3.Renv oyerI2(matrice identité)
4.(R?0,R?1) (R0quoXm,R1quoXm)
5.D?0 DemiPgcd(R?0,R?1)
6.Rj R j+1 D?0 R0R1 7.Si deg (Rj+1) 8.Renv oyerD?09.(Qj,Rj+2) DivEucl(Rj,Rj+1)
T j 0 11Qj 10.Si deg (Rj+2)quotesdbs_dbs46.pdfusesText_46
3.Renv oyerI2(matrice identité)
4.(R?0,R?1) (R0quoXm,R1quoXm)
5.D?0 DemiPgcd(R?0,R?1)
6.Rj R j+1 D?0 R0R17.Si deg (Rj+1) 8.Renv oyerD?09.(Qj,Rj+2) DivEucl(Rj,Rj+1)
T j 0 11Qj 10.Si deg (Rj+2)quotesdbs_dbs46.pdfusesText_46
8.Renv oyerD?09.(Qj,Rj+2) DivEucl(Rj,Rj+1)
T j 0 11Qj10.Si deg (Rj+2)quotesdbs_dbs46.pdfusesText_46
[PDF] Le calcul vectoriel ( Le produit Scalaire )
[PDF] Le camp d'Auschwitz
[PDF] Le campeur
[PDF] le campeur : Fonction affine par morceaux, valeur absolue, lectures graphiques
[PDF] Le cancer
[PDF] Le cancer de la peau
[PDF] Le cancer et les divisions cellulaire s
[PDF] le cancer nutritionnel
[PDF] Le cancre - Prévert
[PDF] le cancre jacques prévert analyse
[PDF] le Canon
[PDF] Le caoutchouc naturel
[PDF] Le capitaine
[PDF] le capitaine du navire