IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

simplification d'une expression


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut
    Bonjour, je me permets de vous demander ceci car j'ai un gros problème

    J'essaie de réaliser un programme de simplification d'expressions algébriques
    en disant que si on a
    : u + v avec v = 0 on ressort simplification(u)
    que si on a u * v avec v quotient, on
    fait u' = simplification u
    v' = simplification de v
    et on retourne
    (u' * numérateur de v' / dénominateur de v'


    MAis voila : si je dis de simplifir x * (1 / x)
    on est dans le cas du produit
    donc l'ordi me ressort x/x ... et ne simplifie pas car il n'y a pas d'appel récursif (mais quand j'en fais un ça boucle à l'infini)

    autre problème : simplification de x/(2*x)
    l'ordinateur simplifie x en x
    simplifie 2 * x en 2 * x
    et ressort donc le même résultat x/(2*x)!!!
    Comment faire algorithmiquement parlant?

    Merci d'avance pour vos réponses

  2. #2
    Membre émérite

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Par défaut
    Cela me parait également plus un probleme d'algo de plus tu ne poste pas ton code alors cela parait assez dur de trouver ton probleme... je pense pour ton premier souci (x * (1 / x)) que lorsque tu boucle c'est ta condition de sortie de boucle qui doit etre mauvaise... a ta place je comparerai a chaque fois le résultat de la simplification avec sa précédente expression et je sortirai lorsqu'elle serait égale.

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ethanlol Voir le message
    : u + v avec v = 0 on ressort simplification(u)
    que si on a u * v avec v quotient, on
    fait u' = simplification u
    v' = simplification de v
    et on retourne
    (u' * numérateur de v' / dénominateur de v'
    simplification(u/v) n'est pas simplification(u)/simplification(v)

    simplification(u/v) = a/b avec, a = u / pgcd(u,v) et b= v / pgcd(u,v) sur l'hypothese pgcd(u,v) non nul

    -> simplification(x/2.x) = 1/2 sur l'hypothese x non nul
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut
    -> simplification(x/2.x) = 1/2 sur l'hypothese x non nul
    simplification(x/2.x) ou simplification(x/(2.x))?

    Au vue de ce que j'ai compris, le problème est dans l'absence de récusion.
    Ton algo reste toujours au 'premier niveau' de simplication.

    Comme l'a dit nayah, ton problème doit être dans ta condition de sortie de boucle. Ou alors dans l'algo qui décide si deux expressions égales/équivalentes.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut
    Bonjour:
    mais le probleme c'est qu'on ne peut pas faire pgcd d'une constante et d'une variable
    et dans le second
    quand on a

    Simplification ( Terme (Variable(x),'/',Terme(Variable(x), '*',2)), je ne vois pas ce que peut faire l'algorithme?

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ethanlol Voir le message
    Bonjour:
    mais le probleme c'est qu'on ne peut pas faire pgcd d'une constante et d'une variable
    Ah bon ? moi je dirais bien que PGCD( 2.a.b.c , 6.b.c.d ) = 2.b.c
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut
    a oui effectivement ! il va falloir m'atteler à programmer quelque part un programme de pgcd!

  8. #8
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    La division euclidienne pour les constantes + l'intersection des listes pour les variables:

    PGCD( 2.a.b.c , 6.b.c.d ) = PGCD(2,6).Intersect({a,b,c},{b,c,d})
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut
    A excellente idée l'istoire de faire avec des ensembles!!!!

    Le pseudo code est effectivement evident la programmation un peu moins

    il faut que je dise que si on a une expression dont le numératuer ou le dénominateur contient des variables en produit avec le reste soient ressorties...

    Je veu dire il n'est pas évident d'identifier que dans

    Terme(Terme(3,*,x) +, Terme (2, *,x) qu'il y a un x à "mettre de coté"

Discussions similaires

  1. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 10h54
  2. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22
  3. [String] rendre une expression reguliere insensible à la case
    Par chimical dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2004, 11h38
  4. "Différence de type dans une expression" Tquery
    Par Hakim dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/04/2004, 00h22
  5. [langage] surement une expression régulière...
    Par armada dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo