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

Pascal Discussion :

Trouver les solutions d'un jeu d'identification d'un mot avec des règles de codage


Sujet :

Pascal

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 38
    Points
    38
    Par défaut Trouver les solutions d'un jeu d'identification d'un mot avec des règles de codage
    Bonjour, bonsoir
    Voilà, je viens de voir un exercice dans le journal qui normalement requiert une bonne connaissance de la langue française pour être résolu.
    Je vous poste le principe + Un exemple ( les lettres à droite )
    Vous l'aurez compris, le but est de placer dans la case correspondante une des 3 lettres du mot correspondant à son matricule : pour la 1ère case, il faut mettre une lettre du premier triplet, la 2e case une lettre du second triplet, etc...
    Je me demandais simplement s'il était possible de créer un algorithme pour trouver la solution, je pensais à un truc un peu "bourrin" où le programme afficherait la liste des combinaisons possibles. Mais même ça, je n'y arrive pas Je me retrouve avec plein de conditions et de boucles imbriquées, c'est la galère ! Quelqu'un qui serait intéressé aurait-il une idée à me proposer ?
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Il faut analyser le problème calmement. Finalement le jeu consiste à prendre une lettre du groupe 1, puis une du groupe 2 puis une du groupe 3. A partir de là, 3 lettres sont choisies. Si je comprends bien, au tour d'après, on choisit une lettre du groupe 1 qui n'a pas été déjà choisie, pareil pour le groupe 2, pareil pour le groupe 3. On boucle au total 3 fois.

    Evidemment, pour avoir un algorithme optimisé, on ne fera pas appel à randomize pour choisir quelle lettre prendre.

    Pour simplifier un peu la chose on peut aussi considérer que les 3 cases qui doivent être remplies par le groupe 1 sont consécutives, idem pour le groupe 2 et le groupe 3. Autant dire, ca revient à afficher les 6 combinaisons possibles pour chaque groupe (au final, si je me suis pas gouré , le nombre de combinaisons possibles est 6^3).

    Pour les boucles, il faut à tout pris essayer de minimiser leur nombre, et éviter qu'elles s'imbriquent... Une solution comme je viens de l'exposer, serait de calculer toutes les combinaisons de 3 cases du groupe1, et du groupe2 et du groupe 3, puis les "réassembler" dans une boucle bête.

    En espérant que ca t'aide un peu !
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    le problème majeur me semble être d'identifier la réponse sans un dictionnaire ce n'est pas possible.

    avec un dictionnaire ça devient par contre très simple, il faut un mot de 6 lettres qui commence par l'une des lettre du 1, puis l'une des lettre du 2...en fait on doit très vite trouver la solution.

    après pour faire défiler les combinaison c'est simple, prenons un exemple plus simple
    1 ABC
    2 DEF
    3 GHI

    premières combinaisons
    ADGADGADG
    ADGADGADH
    ADGADGADI
    ADGADGAEG

    en fait c'est un comptage en base 3 qui utilise des lettres
    0000000000
    0000000001
    0000000002
    0000000010
    0000000011
    0000000012
    0000000100
    etc...
    soit 3^9 possibilités (19683)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    La technique des combinaison, qui vient en premier n'est pas très efficace. Elle est assez simple à programmer comme l'explique Paul TOTH. Il faut utiliser un seul compteur qui va de 0 à 3^9 et l'écrire en base 3. Mais ça ne la rend pas efficace.

    La solution consistant à charger un dictionnaire des mots de 9 lettres et à procéder par élagage serait effectivement bien plus efficace. Le nombre d'itération serait alors très inférieur à 9n (ou n est le nombre de mots de 9 lettres dans le dictionnaire). Bien plus rapide 3^9n (génération de tout les cas, et comparaison dans la liste des mots de 9 lettres).

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Hum...
    Alors dans ce cas-là je suis désolé, mais ça ne relève pas de mes compétences
    Je pensais que ce serait plus simple... :/

Discussions similaires

  1. Comment coder un jeu de memory (trouver les paires) en javascript
    Par Vyncent dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/10/2010, 08h46
  2. [Threads]Comment les organiser pour un jeu du serpent ?
    Par Pill_S dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 11/05/2004, 15h22
  3. Trouver les redirections dans des traces
    Par severine dans le forum Développement
    Réponses: 3
    Dernier message: 21/04/2004, 18h51
  4. [GUI] Ou trouver les standard ?
    Par Braim dans le forum Windows
    Réponses: 5
    Dernier message: 01/10/2003, 08h13

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