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 :

Algorithme combinaisons mots à partir de lettres


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut Algorithme combinaisons mots à partir de lettres
    Bonjour à tous,
    voila j'essai de me triturer la tete depuis quelques jours sans grand succès sur un algorithme qui semble pourtant être assez simple à développer.

    J'essai de trouve une procédure qui à partir d'un entier "n" et d'un tableau de caractères "Lettres" me trouve tous les mots possibles de longueur n et possédant les lettres contenues dans le tableau Lettres (sans doublons)
    Par exemple si j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure trouveMot(n,Lettres)
    debut
        algorithme que je ne trouve pas :oops: 
        retourner tableau de mots
    fin
    dudule = {a,n,o,i,p,l,b,t,d,o,a}

    et que j'appel trouveMot(4,dudule)
    qu'il me trouve tous les mots possible de 4 lettres contenant 1 ou 2 a plus les autres lettres, enfin bref, je pense que vous m'avez compris, enfin j'esoère. Les lettres peuvent etre en doublon dans mon tableau passé en paramètre.
    Je sais qu'il y à déjà eu d'autres topics sur ce sujet mais à chaque fois les gens n'ont pas la contrainte de la longueur de mot.

    J'espère que vous saurez m'aider.
    En vous remerciant d'avance, passez un bon après midi

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 136
    Points : 133
    Points
    133
    Par défaut
    slt,

    Si un mot est en doublon dans le tableau peut-il apparaitre 2 fois dans le mot ?

  3. #3
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    ca ressemble à un sujet récent:

    http://www.developpez.net/forums/sho...d.php?t=250614
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Oui en effet ça ressemble..

    Je me suis un peu creusé la tete à partir de ce que j'ai trouvé, et figurez vous que j'étais à cora avec mon petit caddie (désolé pour la pub lol) avec ma feuille et mon petit crayon, et en passant dans le rayon picole (même pas, j'allais vers l'orangina :p (désolé pour l'autre pub) ) et figurez vous que j'ai trouvé un truc sympa mais je ne sais pas si c'est très optimisé et si le temps de calcul ne va pas etre trop important :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    procédure trouverMot(tableau P, entier longueurMot)
    données : 
        entier i,j,k
        tableau : D,M
    debut
    pour i allant de 0 à 9 faire
         M[0] = P[i]
         pour j allant de 1 à longueurMot
              pour k allant de 0 à 9
                   si D[k] != Null
                        M[j] = D[k]
                        D[k] = null
                   sinon 
                        k++
                   fin si
              fin pour
         fin pour
         // test si le mot est existant si oui on sort
         // sinon on remet les cases de M à 0
         // on reduplique D
    fin pour
    fin
    Je ne sais pas si c'est bon mais en fait en tapant je viens de me rendre compte que c'est foireux, vu qu'il ne me proposera pas grand chose.. Bon je vais réétudier ton lien Nemerle..
    MAis je pensais etre sur la bonne voie.

    Pou répondre à ta question sympho si une lettre est en double dans mon tableau elle peut en effet apparaitre deux fois ..

    Bon je mange et je me remet la dessus
    Merci pour vis réponses

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Yop,
    je me suis débrouillé un peu différement en fait,
    j'ai pris tous les mots que j'avais dans mes fichiers et je les compares lettre par lettre à mon tableau.
    C'est la méthode inverse de celle voulu, mais j'obtiens au final le même résultat donc, tous les chemins mènent à rome parait il ^^

    Merci encore de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage d'un mot à partir du code ascii
    Par husobom dans le forum Prolog
    Réponses: 1
    Dernier message: 30/12/2007, 23h22
  2. Réponses: 5
    Dernier message: 07/05/2007, 08h16
  3. Création de mots à partir de liste des lettres
    Par diditin dans le forum Prolog
    Réponses: 3
    Dernier message: 04/05/2007, 22h50
  4. extraire des mots à partir d'une chaine
    Par freestyler dans le forum Delphi
    Réponses: 5
    Dernier message: 28/09/2006, 15h04
  5. Recherche sur mots de 3 lettres
    Par mamizo dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/02/2005, 14h59

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