Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Le compte est bon

Le compte est bon

Remonter à Forum général Python
  • Le compte est bon

    Envoyé par GNRhic le 1 Mai 2009 à 21:54
    Bonsoir à tous,

    Je dois créer un programme en python, capable trouver un solution (ou alors la solution la plus proche) du jeu "Le compte tes bon" ("des chiffres" de des chiffres et des lettres), en lui donnant une liste de 6 nombre (appartenant l'ensemble 1,2,3,4,5,6,7,8,9,10,25,50,75,100) et un nombre à trouver (entre 100 et 999).
    Petit rappel sur le "compte est bon" : on peut utiliser autant de fois les opérateurs +,-,*,/ mais on ne peut utiliser qu'une seule fois les chiffres de la liste de départ.

    J'ai recherché longuement sur internet une idée d'algorithme.. il a des choses intéressante mais je n'arrive pas a les appliquer avec python :(

    Je veux appliquer l'algorithme "simple" mais "lourd" qui consiste à calculer toutes les solutions possible avec la liste donnée, et de s'arrêter si on trouve la réponse.

    En gros en le schématisant par un arbre, voilà ce que ça donne :

    http://hypo.ge-dip.etat-ge.ch/www/math/gif/compte.GIF

    Quelqu'un pourrait-il me guider pour écrire l'algorithme (en Python) capable de faire TOUTES les solutions de l'arbre ??

    Merci d'avance.. je suis perdu :(
    • Re: Le compte est bon

      Envoyé par glickind le 5 Mai 2009 à 13:56
      demande à Google au choix:
      algorithme compte est bon
      python compte est bon

      ou alors précise ta question en postant ton programme et ce que tu voudrais
      car actuellement je ne comprends pas ce que tu veux:
      "arrêter si on trouve la réponse" ou "TOUTES les solutions de l'arbre"
    • Re: Le compte est bon

      Envoyé par encolpe le 5 Mai 2009 à 15:37
      Dans mon jeune temps (mais non je ne suis pas un dino), j'ai eu à résoudre ce problème en scheme.

      Il faut procéder par étape pour réussir cet exercice :
      - construire l'arbre complet en utilisant des méthodes récursives qui remontent un entier.
      - arrêter le calcul lorsque l'on tombe sur une opération inutile (un opération avec 0 ou 1 par exemple)
      - détecter les branches symétriques
      - etc

      Normalement tout se règle sans utiliser une seule variable et il est possible de trouver la meilleure valeur approchée si le résultat n'est pas atteignable.
    • Re: Le compte est bon

      Envoyé par GNRhic le 6 Mai 2009 à 22:27
      Merci de ta réponse encolpe.

      Ce que tu me décris est exactement ce que je souhaite faire.

      Le problème c'est que je ne sais pas du tout comment le coder ! :(

      Comment stocker les calculs ? Comment annuler les calculs inintéressants ?.. :(

      Merci encore.
Rendu par Ploneboard