Nous nous limitons ici aux polynômes, mais ces méthodes conduisent également à des algorithmes de multiplication rapide des entiers L'algorithme de
Previous PDF | Next PDF |
[PDF] Multiplication de polynômes
Soient les deux polynômes 7y3 + 9y2 + y +5et2y2 + 4y + 2 • Pour les multiplier il suffit de placer les polynômes comme si nous allions les addition- ner: 7y3 +
[PDF] Multiplication rapide de polynômes - École normale supérieure de
L'objectif de ce sujet est d'étudier divers algorithmes de multiplication de polynômes ainsi que leur complexité en fonction du nombre de termes des polynômes
[PDF] Multiplication de polynômes - GRAAL
▷ Question 5 En utilisant la fonction précédente, écrivez une fonction multiplication qui calcule le pro- duit de deux polynômes multiplication : polynome −>
[PDF] Multiplication rapide de polynômes et de matrices 1 - Normale Sup
9 avr 2008 · qui calculent respectivement la somme de deux polynômes, la multiplication d'un polynôme par un scalaire, et la différence de deux polynômes
[PDF] Multiplication rapide : Karatsuba et FFT
Nous nous limitons ici aux polynômes, mais ces méthodes conduisent également à des algorithmes de multiplication rapide des entiers L'algorithme de
[PDF] Multiplication de polynômes poly_mul
7 nov 2012 · multiplication de polynômes, ainsi qu'une fonction qui affiche un polynôme void poly_add ( const double complex ∗P, int degP , const double
[PDF] Polynômes - Université de Sherbrooke
14 août 2018 · Plan du chapitre 1 Définitions 2 Addition et soustraction de polynômes 3 Multiplication de polynômes 4 Division de polynômes 5 Références
[PDF] Multiplication de polynômes : Karatsuba, FFT - Institut de
On propose ici d'écrire des procédures de multiplication de polynômes Chacune On désire calculer le produit de deux polynômes P, Q ∈ R[X] de degrés < n,
[PDF] multiplication et division
[PDF] Multiplication et division de décimaux relatifs
[PDF] multiplication et division de fraction 4eme
[PDF] multiplication et division de fraction exercices
[PDF] Multiplication et division de nombres relatifs
[PDF] multiplication et division des nombres relatifs 4ème exercices
[PDF] Multiplication et Division en écriture fractionnaire
[PDF] multiplication et division exercices
[PDF] multiplication et division jeux
[PDF] multiplication et fractions avec ses étapes
[PDF] multiplication facts 0-12
[PDF] multiplication facts 1-12 printable
[PDF] multiplication nombre relatif
[PDF] multiplication nombre relatif 4eme
Multiplication rapide de polynômes
Épreuve pratique d"algorithmique et de programmation Concours commun des Écoles normales supérieuresDurée de l"épreuve: 3 heures 30 minutes
Juin/Juillet 2014ATTENTION !
0Important.
Sur votre table est indiqué un numérou0qui servira d"entrée à vos programmes. Lesréponses attendues sont généralement courtes et doivent être données sur la fiche réponse
fournie à la fin du sujet. À la fin du sujet, vous trouverez en faitdeux fiches réponses. La
première est un exemple des réponses attendues pour uneu0particulier (précisé sur cette même fiche et que nous notons avec un tilde pour éviter toute confusion!). Cette ficheest destinée à vous aider à vérifier le résultat de vos programmes en les testant aveceu0
au lieu deu0. Vous indiquerez vos réponses (correspondant àvotreu0) sur la seconde et vous la remettrez à l"examinateur à la fin de l"épreuve. En ce qui concerne la partie orale de l"examen, lorsque la description d"un algorithme est demandée, vous devez présenter son fonctionnement de façon schématique, courte et Quand on demande la complexité en temps ou en mémoire d"un algorithme en fonction d"un paramètren, on demande l"ordre de grandeur en fonction du paramètre, par exemple:O(n2),O(nlogn),...
Il est recommandé de commencer par lancer vos programmes sur de petites valeurs des paramètres et detester vos programmes sur des petits exemples que vous aurez résolus préalablement à la main ou bien à l"aide de la fiche réponse type fournie en annexe. Enfin, il est recommandé de lire l"intégralité du sujet avant de commencer afin d"effectuer les bons choix de structures de données dès le début. L"objectif de ce sujet est d"étudier divers algorithmes de multiplication de polynômes ainsi que leur complexité en fonction du nombre de termes des polynômes manipulés. Pour expérimenter ces algorithmes, nous considérerons ici des polynômes dont les coef- ficients sont desentiersmodulop= 12289. En d"autres termes, nous travaillerons dans l"anneau des polynômes(Z=pZ)[t]. Il est à noter que, commepest premier,Z=pZest un corps : tous ses éléments non nuls sont inversibles modulop. Dans la suite, nous appelleronspolynômedetaillenun polynôme de degré au plusn1:A(t) =n1X
i=0a iti, où tous lesai2Z=pZ.Un tel polynôme sera représenté par la donnée dun-uplet(ai)0i1 Préliminaires
1.1 Génération de polynômes aléatoires
Avant toute chose, considérons les trois suites d"entiers positifs(uk)k0,(vk)k0et(wk)k0 définies par u k=votreu0(à reporter sur votre fiche réponse) sik= 0, 17420uk1mod 32003sik >0,
v k=votreu0(le même) sik= 0, 17420vk1mod 32009sik >0,et
w k= (ukvk) modp, avecp= 12289. Question 1Donnez les valeurs(uk;vk;wk)pourkvalanta)5,b)50,c)500. Nous notons alorsPn;kle polynôme de taillenreprésenté par les coefficients(wkn+i)0i
1.3 Opérations élémentaires
Étant donnés deux polynômesA(t)etB(t)(pas forcément de même taille) ainsi qu"un élémentc2Z=pZet un entier positifi, on définit les opérations classiques d" addition :A(t) +B(t); de soustraction :A(t)B(t); de multiplicationparunscalairecA(t); et de multiplicationpart i:A(t)ti. Question 3Calculez les polynômes suivants et donnez leur signature : a)P15;1(t) +P10;3(t),b)P100;1(t)P150;2(t),c)w42P1000;1(t),d)P4000;1(t)t17. Question à développer pendant l"oral :En supposant que les polynômesA(t)etB(t) soient de taillemetn, respectivement, donnez le coût exact de chacune de ces opérations, en matière d"additions et de multiplications dansZ=pZ. (Une soustraction ou un calcul d"opposé dansZ=pZsera compté comme une addition.)Dans la suite du sujet, lorsqu"aucune ambiguïté n"est possible, on évitera d"écrire expli-
citement la variable(t)des polynômes afin de ne pas alourdir les notations. Ainsi, par exemple, on noteraA+Bla somme de deux polynômesA(t)etB(t).2 Algorithme naïf
Question à développer pendant l"oral :Étant donnés deux polynômesA(t)etB(t) de taillemetn, respectivement, quelle est la taille de leur produit? Écrivez un algorithme naïf qui calcule ce produit. Quelle est sa complexité en temps et en mémoire? Combien d"additions et de multiplications dansZ=pZnécessite-t-il exactement? Question 4Calculez les produits de polynômes suivants et donnez leur signature : 2/73 Algorithme de Karatsuba
Dans cette partie, les polynômes que nous cherchons à multiplier sont tous deux de taillen= 2`, pour un entier`1. On noteA(t) =Pn1 i=0aitietB(t) =Pn1 i=0bitices polynômes. L"algorithme développé par Karatsuba en 1960 pour multiplier deux tels polynômes re- pose sur une approche de typediviserpourrégner. Pour cela, on commence par découper chaque polynôme en deux parties de taillen=2en écrivantA(t) =A1(t)tn=2+A0(t), avecA0(t) =Pn=21
i=0aitietA1(t) =Pn=21 i=0an=2+iti, etB(t) =B1(t)tn=2+B0(t), avecB0(t) =Pn=21
i=0bitietB1(t) =Pn=21 i=0bn=2+iti.Le produitA(t)B(t)est alors donné par
A(t)B(t) =A1B1tn+ (A0B1+A1B0)tn=2+A0B0.
Tel qu"écrit ci-dessus, le produit de deux polynômes de taillenrequiert4produits de polynômes de taillen=2(les produitsA0B0,A0B1,A1B0etA1B1), ce qui n"apporte aucun avantage par rapport à l"algorithme naïf. Cependant, la méthode de Karatsuba permet d"effectuer le même calcul en seulement3 produits de taillen=2, au prix de quelques additions et soustractions supplémentaires, en remarquant que A0B1+A1B0= (A0+A1)(B0+B1)A0B0A1B1.
Question à développer pendant l"oral :Quels sont ces3produits de taillen=2? En remarquant qu"il est possible d"appliquer récursivement la méthode de Karatsuba pour calculer ces produits, écrivez un algorithme calculant le produit de deux polynômes par cette méthode. Quel est sa complexité en temps et en mémoire? Indiquez le nombre exact d"additions et de multiplications dansZ=pZrequises pour multiplier deux polynômes de taillen= 2`. Question 5Calculez les produits de polynômes suivants et donnez leur signature : Question à développer pendant l"oral :Peut-on appliquer l"algorithme de Karatsuba à des polynômes dont la taillenn"est pas une puissance de2? Si oui, comment? Donnez une borne supérieure de la complexité de cet algorithme en fonction den. Et lorsque les deux polynômes n"ont pas la même taille?4 Méthode par transformée de Fourier rapide
4.1 Multiplication par évaluation-interpolation
La multiplication par transformée de Fourier rapide appartient à la famille des algo- rithmes demultiplicationparévaluation-interpolation. Ces algorithmes reposent sur lapropriété qu"un polynômeA(t)de taillendéfini surZ=pZpeut être représenté de manière
3/7 unique par son évaluation ennpoints distincts(ti)0il"unité!2 Pnpermet de générer l"ensemble des racinesn-ièmes de l"unitéRn, c"est-à-dire
que R n=f!0;!1;:::;!n1g. Si une telle racine primitive existe, quel est alors le cardinal deRn? 4/74.3 Transformée de Fourier discrète
Étant donné un polynômeA(t) =Pn1
i=0aitide taillenet!une racinen-ième primitive de l"unité dansZ=pZ, latransforméedeFourierdiscrète de ce polynôme en!, notée TFD !(A), est l"évaluation de celui-ci en lesnpoints distincts(!i)0i12. On pourra vérifier que!2`2 P2`pour tout
0`12. Question à développer pendant l"oral :Écrivez un algorithme qui, étant donné un polynômeA(t)de degrén= 2`, calcule de manière naïveTFD!2`(A), la transformée de Fourier discrète de ce polynôme en!2`. Quelle est sa complexité en temps et en mémoire? Question 7Pour chaque polynômePn;k(t)de taillen= 2`suivant, calculezTFD!2`(Pn;k), sa transformée de Fourier discrète en!2`, et donnez la signature de cette transformée : a)P24;0(t),b)P28;1(t),c)P212;2(t). Étant donné un polynômeA(t)de taillenet une racinen-ième primitive de l"unité!2 Pn, on peut considérer le polynôme de taillenassocié auxncoefficients de la transformée de Fourier discrète deA(t)en!, que l"on note^A(t):A(t) =n1X
i=0A(!i)ti. En appliquant l"opération une seconde fois, mais en prenant cette fois-ci!1(l"inverse multiplicatif de!dansZ=pZ) comme racine primitive de l"unité, on obtient alors le polynôme de taillen ^A(t) =n1X i=0^A(!i)ti,
dont les coefficients sont directement donnés parTFD!1(^A). Question à développer pendant l"oral :Vérifiez que^^A(t) =nA(t). Déduisez-en que les coefficients de l"interpolation d"un polynôme de taillenà partir de son évaluation en les racinesn-ièmes de l"unité(!i)0i4.4 Transformée de Fourier rapide
Si la transformée de Fourier discrète et son inverse présentées dans la section précédente
permettent d"évaluer et d"interpoler un polynôme auxnracinesn-ièmes de l"unité deZ=pZ, la complexité de l"algorithme naïf pour calculer ces transformées est trop élevée
pour que cette approche présente un quelconque avantage par rapport à l"algorithme de multiplication classique ou à la méthode de Karatsuba. Cependant, l"algorithme detransforméedeFourierrapide, initialement mis au point par Gauss en 1805 puis redécouvert en 1965 par Cooley et Tukey, permet de calculer la transformée de Fourier discrète d"un polynôme bien plus efficacement.