Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Programme python

Posté par
Agonnn
03-03-20 à 15:14

Bonjour je voudrais savoir comment faire pour faire un programme python ou l'ordinateur essaye de trouver le nombre auquel je pense .

Posté par
mathafou Moderateur
re : Programme python 03-03-20 à 15:35

Bonjour,

comment ferais tu, toi, à la main sans rien d'autre que dialoguer, pour trouver le nombre auquel quelqu'un d'autre pense ?

diverses méthodes selon ce que l'autre a le droit de répondre (oui/non, ou trop petit / trop grand etc ) et selon les questions qu'on a le droit de poser (juste une proposition de nombre ou une phrase)
selon la sorte de nombre autorisé (un nombre entier ? dans un certain intervalle ?)
et selon que l'on est astucieux ou pas dans le choix des questions posées

une fois analysée la méthode à utiliser on la traduira en algorithme,
puis finalement en langage Python.

Posté par
Agonnn
re : Programme python 03-03-20 à 15:55

Pourriez vous me donnez les bases car je viens tout juste de commencer python

Posté par
mathafou Moderateur
re : Programme python 03-03-20 à 16:16

comme deja dit le début du raisonnement n'a rien à voir avec Python.

mais à la recherche d'une stratégie (d'une méthode) pour deviner (pour que toi tu devines) le nombre pensé par un de tes potes.
et d'écrire cette méthode avec des phrases en français ("algorithme en langage naturel")


les bases de Python ?
voir des tutoriels Python, le cours que tu as dû avoir là dessus avec des exemples
parce que il est impossible de donner ici un cours sur les bases de Python !!!

on ne pourra que te guider pour corriger les erreurs que tu ferais, te guider sur comment écrire telle ou telle opération précise, etc

encore faut il savoir quelles opérations (en français) on veut faire !!!
avant d'imaginer qu'on les traduirait en quoi que ce soit, Python ou autre.

Posté par
mathafou Moderateur
re : Programme python 03-03-20 à 19:46

exemple :

je choisis comme méthode de recherche :
essayer tous les nombres jusqu'à ce que la réponse à "est-ce ce nombre la ?" soit "oui"

ça pourrait se traduire par l'algorithme "en langage naturel standardisé"

en partant de n = 1
tant que la réponse à "est ce le nombre n" est "non"
       passer au nombre suivant n+1
on a trouvé, c'est la dernière valeur de n

dont une traduction mot à mot en Python pourrait être :

n = 1
while (input(n) != "oui") :
    n = n+1
print("j'ai trouvé ! c'était", n)


évidemment cette méthode de recherche là n'est pas très astucieuse :
si on cherche un nombre (entier) entre 1 et 1000, il faudra poser en moyenne 500 propositions avant de le trouver !
alors que avec une méthode par dichotomie (jouer à "plus grand / plus petit") 10 questions au maximum permettrait de le trouver.

de plus la traduction en Python n'est pas terrible non plus (mais ça marche) :
pour chaque candidat au lieu d'une phrase dans la demande, il ne met juste que la valeur du candidat sans aucune explication
et si je réponds Oui au lieu de oui, il considère que c'est non !

on peut donc apporter pas mal d'améliorations à ce "premier jet"
...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1510 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !