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 :

aide pour exercice


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut aide pour exercice
    Soit le tableau
    1- a b c d e
    2- a b d f g
    3- b c d e f
    4- a c e f g
    5- b d e f g
    6- a b d f g

    Je dois trouver quelle est la ou les combinaisons de 4 lettres que l'on retrouve au moins 2 fois.
    exemple à vue d'oeil je vois "bdfg" à la ligne 2 et 6.

    Pour le moment , j'ai pensé à créer un tableau avec toutes les combinaisons possibles à 4 lettres,
    puis en parcourant ce nouveau tableau, vérifier si je trouve au moins 2 fois la combinaison.

    Si vous avez une idée, un conseil.

  2. #2
    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
    Par défaut
    L'idée parait judicieuse, sans nécessairement avoir à stocker toutes les combinaisons possibles (soit en les générants à la volée, soit en les générant à partir de ce qui t'es donné).

    Sinon, en fait, le plus important dans l'algorithme va être de savoir comment tu vas faire tes tests pour savoir si oui ou non, il y a une répétition.

  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
    Une idée sympa, (si j'ai bien compris le probleme) c'est de noter ton tableau comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    1- a b c d e . .
    2- a b . d . f g
    3- . b c d e f .
    4- a . c . e f g
    5- . b . d e f g
    6- a b . d . f g
    ensuite, l'algo consiste a virer 3 colonnes et regarder combien de lignes sont completes (sans trous). Par exemple, si tu retires les colonnes a,c,e il reste 3 lignes completes: la 2, la 5 et la 6
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    En fait Pseudocode, tu proposes une idée diffèrente. Ton idée est intèressante.
    Si je te suis bien dans ta version, il faudrait dans un premier temps trouver toutes les combinaisons possible de 3 lettres entre a et g.

    A la réflexion, ton idée est l'inverse de la mienne.

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    En repartant de l'idée de pseudocode, on code les combinaisons par a= 1, b = 2 c= 4 d = 8 ...
    On fait les sommes et on regarde celles qui sont égales.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  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
    Oui. J'ai choisi l'approche inverse car c'est plus simple de verifier qu'une ligne n'a pas de trou, plutot que de verifier qu'une sequence de symbole est présente dans une ligne.

    Sinon ca fait le meme nombre d'iteration (C(3,7)=C(4,7)=35)

    Mon approche est juste plus couteuse en mémoire car on doit construire le tableau 7x6 (avec les trous).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Euh, le problème c'est de trouver des combinaisons identiques ou des combinaisons sans trous ???
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    Des combinaisons identiques, mais pour répondre au problème Pseudocode recherche les combinaisons sans trous.

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Il me semble que c'est inutilie car avec mon codage on trouve les combinaisons identiques tout de suite
    1- a b c d e => 1 + 2 + 4 + 8 + 16 = 21
    2- a b d f g => 1 + 2 + 8 + 16 + 32 = 59
    3- b c d e f => 2 + 4 + 8 + 16 + 32 = 62
    4- a c e f g => 1 + 4 + 16 + 32 + 64 = 117
    5- b d e f g => 2 + 8 + 16 + 32 + 64 = 122
    6- a b d f g => 1 + 2 + 8 + 16 + 32 = 59
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  10. #10
    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
    on cherche des combinaisons de seulement 4 lettres.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    hmm, je viens de faire justement le tableau, j'ai obtenu
    1- 1 2 4 8 16 . . = 31
    2- 1 2 . 8 . 32 64 = 107
    3- . 2 4 8 16 32 . = 62
    4- 1 . 4 . 16 32 64 = 117
    5- . 2 . 8 32 64 = 106
    6- 1 2 . 8 . 32 64 = 107

    1 + 2 + 4 + 8 + 16 + 32 + 64 = 127

    f chez toi est égale à 16 et 32, es normal ?
    Sinon, ce n'est pas inutile, (à moins d'avoir mal compris ta logique) car il faut trouver tous ceux qui ont au moins 4 lettres identiques et non les 5.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    J'ai fait le tableau dans l'idée qu'il y avait peut être une nouvelle idée à trouver à partir de lui ou une combinaison de 2 idées

  13. #13
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    J'ai lu en travers le problème
    Pour le f erreur de calcul c'est 32 effectivement.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    J'essaye d'aller plus loin.
    j'imagine le tableau suivant :
    2 4 8 16 32 = 62
    2 4 8 32 64 = 110
    1 4 16 32 64 = 117
    4 8 16 32 64 = 124

    Je me demande si en connaissant le total des lignes, on peut arriver à connaitre les combinaisons identiques de 4 lettres.

  15. #15
    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 tania Voir le message
    J'essaye d'aller plus loin.
    j'imagine le tableau suivant :
    2 4 8 16 32 = 62
    2 4 8 32 64 = 110
    1 4 16 32 64 = 117
    4 8 16 32 64 = 124

    Je me demande si en connaissant le total des lignes, on peut arriver à connaitre les combinaisons identiques de 4 lettres.
    Hum... oui, en passant par leur représentation binaire, en faisant un AND et en comptant le nombre de bits restant. Ce qui revient a calculer la taille de l'intersection des deux groupes de lettres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    5- . b . d e f g = 0101111
    6- a b . d . f g = 1101011
    __________________________
    L5 AND L6        = 0101011  -> 4 bits a 1 => match !
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    ok, mais du coup on en reviens à comparer ligne après ligne, je ne crois pas que ca soit tres interessant.
    Je pensais plus à essayer de trouver un calcul fait à partir de la somme du genre :
    127-x...
    à la réflexion, c'est comme ta 1er idée, celle de virer des colonnes.



    ps2 : merci beaucoup en tout cas de suivre ma réflexion.

  17. #17
    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 tania Voir le message
    ok, mais du coup on en reviens à comparer ligne après ligne, je ne crois pas que ca soit tres interessant.
    Je pensais plus à essayer de trouver un calcul fait à partir de la somme du genre :
    127-x...
    à la réflexion, c'est comme ta 1er idée, celle de virer des colonnes.
    ps : en mode réfléchir

    ps2 : merci beaucoup en tout cas de suivre ma réflexion.
    Il faut choisir la meilleure approche en fonction de tes contraintes...
    -est-ce que tu as beaucoups de lignes ?
    -est-ce que tu as beaucoups de sous-groupe de 4 possibles ?
    -est-ce que tu cherches toutes les solutions, une seule solution ou juste savoir s'il y a des solutions ?
    ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  18. #18
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Plutôt que de rechercher les élélments communs, pourquoi ne pas rechercher les éléments qu'ils n'ont pas.
    je m'explique, si on s'en tient à l'exemple donné, on codera les combinaisons
    1- a b c d e => 32 + 64 = 96 car il manque f (32) et g (64)
    2- a b d f g => 4 + 16 = 20 car il manque c (4) et e (16)

    Ensuite il ne suffit plus qu'à faire des AND entre les nombres, si le résultat est 0 les nombres n'ont pas 4 éléments communs sinon, ils en ont 4.
    Pour s'en convaincre, il suffit de regarder le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       a b c d e f g
    1: 0 0 0 0 0 1 1
    2: 0 0 1 0 1 0 0
    3: 1 0 0 0 0 0 1
    4: 0 0 1 0 1 1 1
    5: 1 0 1 0 0 0 0 
    6: 0 0 1 0 1 0 0
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 18
    Par défaut
    @Trap, je ne comprend pas ton rapprochement entre la somme des combinaisons manquantes, le resultat d'un AND et le tableau (0 pour ce présent, 1 manquant).

    Peut-tu faire un exemple avec un AND ?



    @Pseudocode, y a deux résultats qui m'intéressent en particulier
    peu de ligne, peu de sous-groupe de 4 possibles, toutes les solutions
    ET
    beaucoup de lignes, beaucoup de sous-groupe de 4 possibles, toutes les solutions

  20. #20
    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 tania Voir le message
    @Pseudocode, y a deux résultats qui m'intéressent en particulier
    peu de ligne, peu de sous-groupe de 4 possibles, toutes les solutions
    Pour ce genre de cas, ta 1ere approche est tres bien. Creer une liste de toutes les combinaisons possibles, parcourir chaque ligne et incrementer les compteurs correspondant aux combinaisons trouvées.

    beaucoup de lignes, beaucoup de sous-groupe de 4 possibles, toutes les solutions
    Dans ce cas, je conseille l'approche "codage binaire" de chaque ligne, puis de comparer les lignes 2 a 2 et compter si le nombre d'elements communs est >= 4. Si c'est la cas, on extrait les combinaisons communes et on crée/incrémente les compteurs.

    Le gros avantage c'est que, dans ces 2 approches, une grande partie de l'algorithme est parallelisable.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [aide pour exercice] temoin d'exécution
    Par coolmomodu31 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 31/05/2008, 13h11
  2. aide pour exercice sur les structures
    Par demetria dans le forum C
    Réponses: 10
    Dernier message: 25/09/2007, 22h11
  3. Aide pour exercices d'algo
    Par couls dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 27/08/2007, 14h05
  4. besoin d'aide pour exercice
    Par aurore973 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/05/2007, 08h14

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