Programmer avec le langage Linotte

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Programmer avec le langage Linotte

Besoin d'un conseil sur la programmation en Linotte ?

Le Deal du moment :
Fnac : 15% de réduction sur toutes les TV de ...
Voir le deal

2 participants

[simple] [résolu] Trouver un nombre par dichotomie...

avatar
cpc
Posting Freak


Messages : 1188
Date d'inscription : 2004-12-09

[simple] [résolu] Trouver un nombre par dichotomie... Empty [simple] [résolu] Trouver un nombre par dichotomie...

Message par cpc Thu 15 Jul - 15:59

Proposez un livre qui permet de trouver un nombre aléatoire (entre 1 et 1000)par dichotomie.

<!-- m --><a class="postlink" href="http://fr.wikipedia.org/wiki/Dichotomie">http://fr.wikipedia.org/wiki/Dichotomie</a><!-- m -->

Exemple, soit a un nombre aléatoire valant 650.

Je reprends l'exemple de wikipedia :

Code:
Pierre propose à Paul le jeu suivant:
« choisis en secret un nombre compris entre 0 et 100;
je vais essayer de le deviner le plus rapidement possible, mais tu ne dois répondre à mes questions que par oui ou par non ».
Paul choisit 65 et attend les questions de Pierre:


est-ce que le nombre est plus grand que 50? (100 divisé par 2)
oui
est-ce que le nombre est plus grand que 75? ((50 + 100) / 2)
non
est-ce que le nombre est plus grand que 63? ((50 + 75 + 1) / 2)
oui
Pierre réitère ses questions jusqu'à trouver 65.
Par cette méthode itérative, Pierre est sûr de trouver beaucoup plus rapidement le nombre qu'en posant des questions du type « est-ce que le nombre est égal à 30? ».
avatar
farvardin
Member


Messages : 62
Date d'inscription : 2008-05-28

[simple] [résolu] Trouver un nombre par dichotomie... Empty [simple] Trouver un nombre par dichotomie...

Message par farvardin Fri 27 Aug - 23:05

On devrait pouvoir le faire avec ça, bien que cela manque encore de tests au cas où le lecteur tape n'importe quoi :

Code:
Livre:
Dichotomie
Les grands rôles :

nombre_testé est un nombre valant 500
réponse est un texte vide
borne_haute est un nombre valant 1000
borne_basse est un nombre valant 0
Paragraphe :
Début
les rôles :

présentation est un texte valant "Choisis en secret un nombre compris entre 0 et 1000 ;

je vais essayer de le deviner le plus rapidement possible, mais tu ne dois répondre à mes questions que par oui ou par non.
"
les actions :

tu affiches présentation
va vers question
Paragraphe :
question
les rôles :

question est un texte valant "Est-ce que le nombre est plus grand que "
les actions :

si borne_haute - borne_basse est plus petit que 2 alors va vers solution
tu affiches la question
tu affiches nombre_testé
tu demandes la réponse
si la réponse est égale à "oui" alors lis
borne_basse vaut nombre_testé
va vers plus_haut
ferme
si la réponse est égale à "non" alors lis
borne_haute vaut nombre_testé
va vers plus_bas
ferme
Paragraphe :
plus_haut
les actions :

nombre_testé vaut nombre_testé + borne_haute
nombre_testé vaut nombre_testé / 2
nombre_testé vaut arrondi nombre_testé
va vers question
Paragraphe :
plus_bas
nombre_testé vaut nombre_testé + borne_basse
nombre_testé vaut nombre_testé / 2
nombre_testé vaut arrondi nombre_testé
va vers question

Paragraphe :
solution
Tu affiches "Je crois que j'ai trouvé ! Le nombre secret est :
"
Tu affiches borne_haute

    La date/heure actuelle est Tue 30 Nov - 7:29