Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1063 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Multiplication de polynômes. Ce code est-il OK ? [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Multiplication de polynômes. Ce code est-il OK ? [Résolu]

n°1064152
yoms
Posté le 28-04-2005 à 12:32:05  profilanswer
 

Salut,
 
Voilà ,j'ai fait un code assez simple permettant la multiplication de polynômes. Je manipule des tableaux. L'indice du tableau traduit le degré et la valeur pour un indice traduit le coefficient.
 

Code :
  1. int MulPoly (const int Pol1[], const int Pol2[], int Resultat[])
  2. {
  3. int i, j;
  4. for (i=0; i<DEGRE_POLY + 1; i++)
  5.    {
  6.  /* On additionne dans 'Resultat' le produit des coeff de  
  7.     même degré d'où le '+=' */
  8.  for (j = 0; j<DEGRE_POLY + 1; j++)
  9.   Resultat[i + j] += Pol1[i] * Pol2[j];
  10.    }
  11. return 0;
  12. }


 
J'ai testé avec des polynômes de faible degré et c'était OK. Mais j'ai des résultats inattendus avec des polynômes de degré 24. Je ne sais si c'est mon code qui est faux ou si c'est ailleurs dans le programme que ça déconne.
 
Merci !
 :hello:


Message édité par yoms le 28-04-2005 à 22:31:45
mood
Publicité
Posté le 28-04-2005 à 12:32:05  profilanswer
 

n°1064169
Taz
bisounours-codeur
Posté le 28-04-2005 à 12:42:23  profilanswer
 

0 <= i + j <= 2 * DEGRE_POLY

n°1064382
yoms
Posté le 28-04-2005 à 15:27:29  profilanswer
 

J'ai corrigé le code ci-dessus. Je m'étais trompé dans le nom des cstes de degré. Je n'ai pas bien compris ce que tu voulais dire, mais peut-être que ma correction prend en compte ta remarque.
 
Pol1 est de taille DEGRE_POLY + 1 (le +1 pour la puissance zéro)
Pol2 est de taille DEGRE_POLY + 1
Resultat est de taille 2 * DEGRE_POLY + 1

n°1064391
Elmoricq
Modérateur
Posté le 28-04-2005 à 15:30:46  profilanswer
 

Non, Resultat est de taille 2 * (DEGRE_POLY + 1)

n°1064424
yoms
Posté le 28-04-2005 à 15:43:44  profilanswer
 

Si DEGRE_POLY == 24, le degré du résultat est la somme des degrés de chaque poly, soit 48. Pour le tableau, sachant que je commence au degré 0, il me faut donc 49 "cases" pur stocker mon résultat, soit 2 * 24 + 1 <=> 2 * DEGRE_POLY + 1.
 
J'aurais une eu belle erreur d'écriture en-dehors des limites sinon.
 
Mais l'algo en soit, il est faux ou pas ?

n°1064452
yoms
Posté le 28-04-2005 à 16:01:16  profilanswer
 

Ou à la rigueur, il n'y a pas un soft qui fait ça que je peux DL afin de comparer mes résultats ?

n°1064685
Tarabiscot​e
Posté le 28-04-2005 à 18:52:06  profilanswer
 

Ca m'a l'air correct en supposant que le résultat est bien initialisé à 0 avant l'algorithme.
 
Sinon c'est l'algorithme naïf pour la multiplication si tu veux quelque chose d'un peu plus efficace regarde Karatsuba.


Message édité par Tarabiscote le 28-04-2005 à 18:52:42
n°1065035
yoms
Posté le 28-04-2005 à 22:31:17  profilanswer
 

Tarabiscote a écrit :

Ca m'a l'air correct en supposant que le résultat est bien initialisé à 0 avant l'algorithme.
 
Sinon c'est l'algorithme naïf pour la multiplication si tu veux quelque chose d'un peu plus efficace regarde Karatsuba.


 
Tout à fait, le tableau de résultat est bien initialisé à zéro. J'ai pondu ça en 5 min, mais comme on a un truc qui déconne et que je n'ai pas envie de me taper la multiplication de deux poly de degré 23 et 24 pour vérifier, j'ai sollicité vos avis.
Merci à tous.
 
PS : je vais jeter un oeil à Karatsuba


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Multiplication de polynômes. Ce code est-il OK ? [Résolu]

 

Sujets relatifs
[JAVA] Petit problème de centrage [résolu]quelqu'un aurait le code de logiciel "the rename" écrit en tcl/tk
[Résolu] Envoie d'un mail en PHP[RESOLU][XSL/JavaScript]problème d'intégration code JS dans le XSL
[Java] Problème de compatibilité [Résolu]Problème concaténation variables [RESOLU]
[JAVA] Euh... Problème d'affichage [résolu]Erreur de lecture fichier SQL [résolu]
Commande "System" [RESOLU] 
Plus de sujets relatifs à : [C] Multiplication de polynômes. Ce code est-il OK ? [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR