Bien le bonsoir,
Je suis au devant d'un problème qui a été abordé en détail dans la théorie, dont la plupart du temps les conclusions étaient "chaque méthode a ses avantages". Afin d'écrire un petit programme (ou script, whatever) de manipulation de polynômes, j'ai adopté la représentation sparse. Ainsi, pour le polynôme x^2+4x -3y, j'ai la représentation suivante :
((x (2 1) (1 4)) (y (1 -3)))
Il est admis que chaque groupe de sous-liste représente une addition. Cependant, le problème est le suivant : comment représenter la multiplication, notamment entre différentes variables ?
J'ai cherché sur le net bien évidemment, et il en ressort de grandes réflexions théoriques, puis on glisse rapidement vers le benchmark de telle représentation par rapport à une autre, mais rien n'indique une méthode souple et efficace pour représenter la multiplication de variables différentes en sparse ; à moins que j'aie mal cherché
J'ai donc choisi de représenter x^2 * 4y^3 de la façon suivante :
((x (2 1) (3 4y)), où y est en fait une composante de x. Le problème c'est que cela brise les fonctions manipulant les entiers et les symboles différemment, et cela obscurcit la représentation d'origine choisie.
Des idées ?
D'avance merci !
PS : c'est pas entièrement un problème dû à Lisp puisqu'en fait c'est d'ordre plus général, mais vu que je savais pas trop où mettre ce sujet et que mon implémentation est en Lisp, j'ai choisi la catégorie de prog. fonctionnelle.
Message édité par Pc_eXPert le 13-12-2011 à 19:02:55