Developper et Factoriser des expressions

Résolu
Bonjour,
Je cherche un algorithme pour dvelopper et un autre pour factoriser des expressions. Des fonctions du genre:

develop("a(b+c)")

Ça retournerait
"(a+b)(a+c)"


ET

factor("(a+b)(a+c)")

Ça retournerait
"a(b+c)"


Merci d'avance.

2 réponses

  1. Modérateur
    Bonjour,
    Avant de vouloir trouver un algorithme... il serait certainement utile de réviser les maths.
    1
    1. Salut ED, je plussoie
      0
  2. Bonjour,

    Ça n'est pas simple. Il faut commencer par interpréter la ligne pour la mettre sous une forme structurée. Puis appliquer la factorisation ou le développement, puis remettre la structure trouvée sous la forme d'une chaîne de caractère.

    A. Mise en forme
    "a(b+c)" ====> Produit( "a" , "b+c" ) ====> Produit( "a" , Somme( "b" , "c" ) )
    B. Développement (on applique la règle Produit d'une Somme est la Somme des Produits)
    Produit( "a" , Somme( "b" , "c" ) ) ====> Somme( Produit( "a" , "b" ) , Produit( "a" , "c" ) )
    C. transformation en chaîne
    Somme( Produit( "a" , "b" ) , Produit( "a" , "c" ) ) ====> "ab + ac"

    Ça n'est que le point de départ pour le cas le plus simple (le développement), la factorisation demande de bien plus maîtriser les règles mathématiques (recherche de facteurs communs dans des expressions.)
    0