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 :

Correspondance 1-1 entre éléments de tableau


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut Correspondance 1-1 entre éléments de tableau
    Bonjour,
    j'ai deux vecteurs V1 et V2 d'éléments labélisés par des lettres alphabétiques.
    Je souhaite trouver les différentes correspondances entre les éléments du premier vecteur avec un élément du deuxième vecteur sachant qu'on correspond que les éléments ayant un même label.

    EXEMPLE :
    V1= [A,B,C1,C2]
    V2= [A1,A2,B,C1,C2,D]
    Correspondances:
    A-A1,B-B,C1-C1,C2-C2
    A-A1,B-B,C1-C2,C2-C1
    A-A2,B-B,C1-C1,C2-C2
    A-A2,B-B,C1-C2,C2-C1

    Je n'arrive pas à trouver un algorithme qui me fait ça
    Any help ? merci

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Bonsoir,

    Pour être sur que le besoin soit clairement défini, imaginons le jeu de données :
    V1= [A,B,C1,C2,E]
    V2= [A1,A2,B,C1,C2,D]
    E n'a pas d'enfant dans le 2ème tableau, et donc il n'y a aucune solution.
    C'est correct ?


    Deuxième question
    Dans ton exemple, tu n'as pas retenu les 4 solutions ci-dessous :
    A-A1,B-B,C1-C1,C2-C1
    A-A1,B-B,C1-C2,C2-C2
    A-A2,B-B,C1-C1,C2-C1
    A-A2,B-B,C1-C2,C2-C2

    C'est volontaire ou c'est un oubli ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    Oui c'est exactement ça. On veut correspondre tous les éléments du V1

    Citation Envoyé par tbc92 Voir le message
    Pour être sur que le besoin soit clairement défini, imaginons le jeu de données :
    V1= [A,B,C1,C2,E]
    V2= [A1,A2,B,C1,C2,D]
    E n'a pas d'enfant dans le 2ème tableau, et donc il n'y a aucune solution.
    C'est correct ?

    Ici, c'est volontaire. On ne peut correspondre un élément du V1 qu'à un seul élément de V1 !
    Citation Envoyé par tbc92 Voir le message
    Deuxième question
    Dans ton exemple, tu n'as pas retenu les 4 solutions ci-dessous :
    A-A1,B-B,C1-C1,C2-C1
    A-A1,B-B,C1-C2,C2-C2
    A-A2,B-B,C1-C1,C2-C1
    A-A2,B-B,C1-C2,C2-C2

    C'est volontaire ou c'est un oubli ?

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Je vais poser des question stupide :

    Supposons les deux vecteurs suivants :
    V1 =[A,B]
    V2 =[B,A]
    Quel est la correspondance supposé ?
    A-A, B-B
    B-B
    A-A
    Cela pose deux questions sur le comportement le l'algorithme.
    1. La correspondance doit-elle ordonnée dans V2 ?
    2. Si la correspondance doit-être ordonnée quel est la priorité ? (L'ordre de V1 ou l'ordre de V2 ?)

    Supposons les deux vecteurs suivants :
    V1 =[Aa,B,Ab]
    V2 =[A1,A2,A3,A4,B,A5]
    L'une des correspondances suivantes est-t-elle possible ?
    Aa-A5
    Aa-A5, B-B
    B-B, Aa-A5,
    (Les variations sont dû aux questions précédents.)
    L'idée est de savoir si il est nécessaire d'avoir le maximum de match ou si il est possible d'avoir des correspondances avec moins de matchs.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    L'idée ici est de matcher tous les éléments de V1, en supposant qu'on a déjà fait un test qui vérifie que à chaque élément de V1 on a 1 ou plusieurs possibles correspondants dans V2.

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Si tes vecteurs sont triés, il suffit de faire un parcours simultané.

    Regarde les exemples de std::merge sur cppreference.com pour avoir des idées.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. [HaXe] Collision entre éléments dans un même tableau
    Par bvenu dans le forum Flash
    Réponses: 0
    Dernier message: 12/03/2015, 10h50
  2. [MySQL] délais dans une boucle entre les éléments du tableau
    Par dancom5 dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 16/03/2012, 15h07
  3. [HTML][CSS]Décalage vertical entre éléments d'un tableau IE
    Par toctof dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/09/2005, 15h50
  4. Soustraire des éléments de tableau entre eux
    Par syl2095 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/01/2005, 15h29

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