Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Deviner un nombre

Deviner un nombre

Remonter à Forum général Python
  • Deviner un nombre

    Envoyé par Ilanazco le 13 Novembre 2006 à 19:07
    Bonjour à tous,

    Je suis étudiant et j'apprends à programmer
    avec Python. Cependant, j'ai un souci avec un
    petit programme!!

    Voila :
    Je dois choisir un nombre dans ma tête et l'ordinateur
    doit le deviner. Je dois lui fournir les indications
    suivantes : < si mon nombre est plus petit, > si il est
    plus grand et = s'il devine juste!!
    Comment je dois procéder pour écrire mon programme???

    Je dois rendre mon travail mercredi, j'attends volontiers
    vos réponses!
    Merci infiniment!
    • Re: Deviner un nombre

      Envoyé par jpcw2002 le 13 Novembre 2006 à 19:26
      Bon le plus simple pour ce genre d'exercice c'est d'employer une recherche dichotomique:
      explications imagine que l'intervalle est entre 1 et 100 pour faire court et que tu as choisi le nombre 8.
      Tu as 100 possibilités à tester. (pas bien, imagines que ce soit 100 000 000) :)
      Voici la méthode dichotomique, tu propose un intervalle de moitié à chaque fois :

      >>>50
      plus petit
      >>>25
      plus petit
      >>>12
      plus petit
      >>>6
      plus grand
      >>>9
      plus petit
      >>>7
      plus grand
      >>>8
      Félicitations tu es un génie !


      @++
    • Re: Deviner un nombre

      Envoyé par Ilanazco le 13 Novembre 2006 à 19:44
      salut,
      Merci pour ta reponse, oui en effet l'ordi doit deviner un nombre entre 0 et 100!
      Mais ma question est d'ecrire le programme, toi tu me donnes ce qui doit apparaitre quand j'execute ce programme! En fait, pour la construction du programme , je dois utilise While et if....
    • Re: Deviner un nombre

      Envoyé par pacificator le 14 Novembre 2006 à 10:28
      Tu veux que l'on fasse ton travail en somme!
      Si l'apprentissage du Python fais parti de tes etudes, apprend le, c'est facile et ca pourra toujours te servir.

      Bonne continuation et bon python
    • Re: Deviner un nombre

      Envoyé par jpcw2002 le 14 Novembre 2006 à 19:25
      Bon, ben comme j'avais une heure et demie à tuer, que je suis de bonne humeur, que c'est bientôt Noël et surtout que ça m'amusait j'ai fait ton TD car j'ai aussi été étudiant, et je n'ai pas toujours pris le temps de faire mes TP. Par contre j'ai toujours coder tout seul ! C'est le seul moyen d'apprendre.
      Choisir un nombre
      Il te reste plus qu'à commenter, et à tester.
      mes profs n'auraient jamais accepté de code non documenté.
      Tu vas t'apercevoir que comprendre du code (et encore t'as de la chance c'est du python :) ) de quelqu'un d'autre, surtout s'il n'est pas commenté n'est pas un exercice facile.
      Le fait de le commenter va t'obliger à le comprendre.

      Par contre si tu reviens c'est avec du code et des demandes d'explications sur ce que tu n'arrives pas à faire
      @++
    • Re: Deviner un nombre

      Envoyé par bader le 14 Novembre 2006 à 19:34
      Ilanazco, je te conseille de juste t'inspirer de ce qu'à fait jpcw2002 parce que d'une part c'est trop élaboré pour ton niveau et que d'autre part ça sera grillé que c'est pas de toi.
      Puis bon son style de code est pas correcte par rapport à la PEP 8 :P
    • Re: Deviner un nombre

      Envoyé par Ilanazco le 15 Novembre 2006 à 12:28
      Merci a tous d'avoir répondu!Merci jpcw2002 pour le code, je me inspiré en essayant non sans difficulté de decoder ton message;)Mais j'ai opté pour la solution suivante:

      bsup = 100
      binf = 0

      trouve = False

      while not trouve:
      print ("I guess: ")
      milieu = (binf + bsup)/2
      reponse = raw_input ("Indication please: ")

      if (reponse == '<'):
      binf = milieu + 1

      ...etc

      Mon probleme est d'ordonner tout, c pour ca que ca ne marchait pas!
      Merci a tous, et CERTAINEMENT à bientot pour d'autres probs et vos reponses:)!
Rendu par Ploneboard