Polynômes Creux Chapitre 7
Polynômes Creux
Et si on faisait encore de l’informatique?
En informatique, nous avons deux problèmes que nous rencontrons chaque jour : l’algorithmique, la méthode de calcul, et les
structures de données, la formalisation de notre problème. Par exemple, nous voulons enregistrer dans un ordinateur un graphe,
ou un dessin.
Mettons que vous avez fait ceci sur un bout de papier, et que vous voulez le mettre dans un ordi :
A B
Lien
Faut-il enregistrer"Deux ronds avec respectivement A et B à l’intérieur reliés par des pointillés"? Ou une image qui contient
les informations de couleurs pour chaque zone?
Ce sont des décisions que doit prendre un informaticien et nous allons voir un exemple sur les polynômes.
1 Représentation d’un polynôme
Quels informations sont importantes dans un polynômes? La liste de ses coefficients bien sûr. Par exemple quand nous
sommes dans RN[X], on est en clair dans un espace qui ressemble à RN+1.
Donc pour enregistrer un polynôme, la première manière de penser est, une case correspondant à chaque coefficient. Ainsi
on aura :
P=X3+63X2+4X+2= 1 63 4 2
Jusque là tout va bien, mais supposons que nous avons, ce que l’on appelle un polynôme creux :
P=X321 +63X9+4X+2= 1 0...0 63 0...0 4 2
Résultat : Nous avons alloué au total 322 cases mémoires pour stocker très peu d’information.
Pour éviter ce genre de problème, nous n’avons pas d’autres choix que de remettre en cause notre structure de donnée. Quel
est le problème ici? Nous avons des trous dans notre polynôme assez conséquents.
Nous avons à ce moment deux possibilités de structures :
– Créer une syntaxe permettant de spécifier la taille du trou. Par exemple : 63 Trou de taille 7 4 2
– Enregistrer avec le coefficient, la puissance à laquelle elle correspond. (1, 321) (63, 9) (4,1) (2,0)
Pour des raisons de facilité d’implantation, la deuxième solution est la meilleure. Nous rappelons donc :
Chaque coefficient est stocké dans une liste par un couple (coefficient , puissance) par ordre décroissant de puissance
L’ordre est important pour des questions de structuration claire et compréhensible, mais surtout pour l’évaluation que nous
verrons plus tard.
2 Implantation
L’implantation est l’ensemble des procédures de bases permettant la manipulation de la structure de donnée. Le tout réside
dans le concept de boite noire.
Ce concept est très simple, quelqu’un qui va récupérer votre ensemble de fonction. Il ne voudra pas savoir (sauf s’il est
curieux) comment vous avez stocké votre polynôme. Par contre il voudra savoir ce que fait chaque fonction, mais ça n’ira pas
plus loin!
Voici la liste des procédures à créer :
Ex 1:
–convertPoly(p, x) : Cette fonction prend en paramètre P, le polynôme, et x la variable sur laquelle le polynôme est construit (en général
X) et rend le polynôme sous forme cité (sous forme creuse).
–deg(L) : Fonction qui a partir de la forme creuse, détermine le degré (une seule ligne!)
–somme(L1, L2) : Fait l’addition de deux formes creuses
–produitMonome(L, M) : Fait la multiplication d’une forme creuse par un monome (donc un couple).
–produit(L1, L2) : Fait le produit de deux formes creuses
1 Loïc Frère TEXPetit