Le 421 Contre l ordinateur [it12] - Exercice

Documents pareils
alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Qu est-ce qu une probabilité?

Poker. A rendre pour le 25 avril

Rallye Mathématiques de liaison 3 ème /2 nde et 3 ème /2 nde pro Epreuve finale Jeudi 21 mai 2015 Durée : 1h45

Cours de Probabilités et de Statistique

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

POKER ET PROBABILITÉ

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

techniques de tirs a l avant - partie 2

Probabilités. Une urne contient 3 billes vertes et 5 billes rouges toutes indiscernables au toucher.

Probabilités conditionnelles Loi binomiale

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Guide d installation

Manuel d installation et d utilisation du logiciel GigaRunner

Correction TD algorithmique

Coefficients binomiaux

Logiciel DELF-DALF - Mise à jour vers la version (septembre 2014)

Les Cartes et leur Valeur

Guide d'utilisation du téléphone IP Thomson ST-2030 G

PROBABILITÉS CONDITIONNELLES

Peut-on imiter le hasard?

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

Analyse Combinatoire

Feuille d exercices 2 : Espaces probabilisés

COMBINATOIRES ET PROBABILITÉS

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Assistant d e tablissement de Tableaux

Exercices de dénombrement

Résolution de systèmes linéaires par des méthodes directes

Fluctuation d une fréquence selon les échantillons - Probabilités

Programmation linéaire

Les règles de base du poker :

Probabilités Loi binomiale Exercices corrigés

GUIDE DU CANDIDAT Titulaire ou futur titulaire du baccalauréat français

Unité 2 Leçon 2 Les permutations et les combinaisons

Création d'un questionnaire (sondage)

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Taxnet Pro. Fiche de consultation rapide

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Procédure d installation Smart Map 3

Thèmes et situations : La poste et la banque. Fiche pédagogique

Définitions. Numéro à préciser. (Durée : )

VIE PRIVEE CIRCUS BELGIUM

Rapports d activités et financiers par Internet. Manuel Utilisateur

FEAS. Fédération suisse des employés en assurances sociales. Commission centrale des examens. Examen professionnel 2008 du brevet.

La fonction exponentielle

SurveyMonkey Un outil de sondage électronique. Objectifs

pas à pas prise en main du logiciel Le Cloud d Orange - Transfert de fichiers sur PC et MAC Le Cloud

Travaux dirigés d introduction aux Probabilités

Cahier Technique Liaison Comptabilité Api / Sage ECF

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Installation poste de travail. Version /02/2011

Algorithmique et structures de données I

pas à pas créer un dossier photo depuis l application Cloud d Orange sur votre mobile ios puis visualisez-le en haute qualité sur la TV d Orange

Tèl : / mail : contact@apformation.com /

REGLES POKER TEXAS HOLD EM NO LIMIT "CASH-GAME"

CCP PSI Mathématiques 1 : un corrigé

TEXT MINING von 7

OBJECTIFS : SAVOIR - Appréhender les principes juridiques concernant le chèque impayé. TEMPS PREVU : 0 h 30

Fiche technique rue de Londres Paris Tél. : Mail : contact@omnikles.com

4D Server et les licences : fonctionnement et environnement

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

Exe Livret Animateur_Exe Livret Animateur 01/02/11 11:10 Page1

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE. Manuel de formation. Achats

La référence pour l'emploi du temps

Créer son propre serveur Mail.

DUPLICATA RENOUVELLEMENT

Fiche FOCUS. Les téléprocédures. Créer un espace abonné SANS certificat (accessible avec une adresse électronique / un mot de passe)

Guide Numériser vers FTP

S initier aux probabilités simples «Question de chance!»

- CertimétiersArtisanat

Ces Lettres d informations sont envoyées aux extranautes inscrits et abonnés sur le site assistance (voir point N 3).

Utilisez Toucan portable pour vos sauvegardes

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Probabilités conditionnelles Exercices corrigés

GUIDE DE PAIEMENT. Pour Bien Effectuer votre Paiement, veuillez suivre les instructions suivantes :

Guide d utilisation du pilote Windows

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

PROJET D'INFORMATIQUE I IFT 592 PROJET EN SYSTÈMES INTELLIGENTS IFT-593 POKUS. Système d aide au poker. Travail présenté à M.

Procédure d'installation complète de Click&Decide sur un serveur

Manuel d utilisation de mon.vie-publique.fr

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Guide de démarrage rapide

Interface de Gestion - Octopus Documentation utilisateur

Configuration de Microsoft Internet Explorer pour l'installation des fichiers.cab AppliDis

Inscription de votre site sur Google Configuration du sitemap et de Webmaster Tools pour PrestaBox

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Exemple On lance une pièce de monnaie trois fois de suite. Calculer la probabilité d obtenir exactement deux fois pile.

INCORPORER EXCEL EN LIGNE DANS UN FICHIER CRÉÉ AVEC L ÉDITEUR DE TEXTE 15 avril 2015

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Transcription:

Le 421 Contre l ordinateur [it12] - Exercice Yvan Maillot, Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 8 avril 2015 Table des matières 1 Le 421 Contre l ordinateur / pg-ret421a1 (alg) 1 1.1 Analyse probabiliste du 421......................... 1 1.2 Modification du jeu.............................. 2 1.3 Recherche du 421............................... 4 1.4 Recherche du Brelan............................. 5 1.5 Recherche tierce................................ 6 1.6 Stratégie Préférence.............................. 7 1.7 Jouer...................................... 9 1.8 Stratégie ultime................................ 10 1 Le 421 Contre l ordinateur / pg-ret421a1 (alg) Mots-Clés Schéma itératif, Algorithmique, Programmation, C++. Requis Structures de base, Structures conditionnelles, Algorithmes paramétrés, Structures répétitives, Schéma itératif. Cet exercice améliore le jeu du 421 pour permettre : A un joueur humain de jouer contre un autre joueur humain. A un joueur humain de jouer contre l ordinateur. De tester différentes stratégies de jeu. 1.1 Analyse probabiliste du 421 Avant d élaborer des stratégies de jeu, il convient de faire une petite analyse probabiliste puis de vérifier les probabilités par programme. Le nombre de permutations d une combinaison abc est 6 (abc, acb, bac, bca, cab, cba), et il y a 6*6*6=216 jets de dés possibles (111, 112, 113,..., 666). Par conséquent : La probabilité d obtenir un 421 est donc de 6/(6 6 6) = 1/36 2.8%. Les différentes façons de faire un brelan sont : 111, 222, 333, 444, 555, 666. Il y en a donc 6 aussi. La probabilité de faire un brelan est donc de 1/36 soit 2.8%. 1

Unisciel algoprog Le 421 Contre l ordinateur / it12 2 Les tierces sont : 123, 234, 345, 456. Il y en a donc 4 6 = 24. La probabilité de faire une tierce est de 24/216 = 1/9 soit 11,1%. Le reste : il y en a 216 6 6 24 = 180. La probabilité de ne faire aucune combinaison est donc de 180/216 soit 83,3%. Écrivez une procédure test_stats qui demande le nombre de lancers dans un entier n puis lance n fois les trois dés. Comptabilisez le nombre de 421 réalisés dans n421, le nombre de brelans dans nb, de tierces dans nt et le reste dans na. Enfin affichez les résultats. Exemple d exécution. Nombre de lancers? 1000 ==> Proba 421 : 2.9% ==> Proba brelan : 2.7% ==> Proba tierce : 10.8% ==> Proba rien : 83.6% Rappel La fonction jetde() simule le lancer d un dé. La procédure decroitre3i(a,b,c) ordonne trois entiers en décroissant. La fonction est421(a,b,c) renvoie Vrai si la combinaison (a,b,c) est un 421. La fonction brelan(a,b,c) renvoie Vrai si la combinaison (a,b,c) est un brelan. La fonction tierce(a,b,c) renvoie Vrai si la combinaison (a,b,c) est une tierce. 1.2 Modification du jeu Vous allez maintenant modifier le programme du 421 pour offrir la possibilité de désigner la «nature» de chacun des deux joueurs. Il peut être humain ou machine (avec différentes stratégies de jeu pour la machine). Attention, veuillez écrire les procédures et fonctions avant la procédure test_jeu puisque c est la procédure finale du jeu.

Unisciel algoprog Le 421 Contre l ordinateur / it12 3 Écrivez une procédure saisirstrategie(st,n) qui affiche le menu ci-après puis qui saisit le numéro de la stratégie du joueur n (entier) dans un entier st jusqu à ce qu il soit valide, c.-à-d. compris dans [0..5] (Rappel : [x] désigne le contenu de x). Strategie du joueur [n] 0 - Manuel 1 - Naif 2 - Recherche 421 3 - Recherche brelan 4 - Recherche tierce 5 - Strategie preference Écrivez une procédure jouertournaif(nj,s) qui effectue un tour de jeu selon la stratégie de jeu la plus simpliste : l ordinateur se contente de lancer une seule fois les trois dés. Autant dire qu il n y a aucune stratégie. A l issu de l unique lancer, la procédure doit restituer le nombre de jetons dans nj (entier) et l évaluation de la combinaison dans s (entier). Écrivez une procédure jouertourst(nj,s,st) qui joue un tour selon la stratégie définie par st (entier) et restitue le nombre de jetons potentiellement gagnés dans nj et l évaluation de la combinaison réalisée dans s. Cette procédure se contente d appeler la bonne procédure selon st : Pour 0 (mode manuel) : c est un appel à la procédure jouertour(nj,s) que vous avez déjà écrite. Pour 1 : c est la stratégie naïve définie ci-avant jouertournaif(nj,s). Et ainsi de suite pour chaque stratégie proposée lesquelles vous seront expliquées plus loin. Vous les ajoutez alors dans cette procédure. Modifiez la procédure test_jeu comme suit : Déclarez deux entiers st1 et st2 qui représentent le numéro de stratégie choisie par chacun des joueurs. Saisissez la stratégie des deux joueurs.

Unisciel algoprog Le 421 Contre l ordinateur / it12 4 Remplacez les deux instructions jouertour(nj,s) en jouertourst(nj,s,st) pour chacun des joueurs. 1.3 Recherche du 421 Comme son nom l indique, cette stratégie consiste à tout faire pour obtenir un 421 (en respectant les règles du jeu). C est une stratégie comme une autre. Écrivez une procédure permuter2i(a,b) qui permute les contenus des entiers a et b. Écrivez une procédure rejouertour421(d1,d2,d3) qui relance un ou plusieurs dés afin (de tenter) d obtenir un 421. Avant l appel, la combinaison définie par d1, d2 et d3 est telle que d1>=d2>=d3 et elle n est pas un 421. Aide méthodologique Si d1 n est pas un 4, regardez s il y a un 4 parmi d2 ou d3, et dans l affirmative, permutez-le avec d1 pour qu en d1 on ait un 4. Si d2 n est pas un 2, regardez s il y a un 2 en d3. Si oui, permutez-le avec d2 pour qu en d2 on ait un 2. Ici on devrait avoir un début de 421. Si cela n est pas le cas, relancez chacun des dés pour tenter d obtenir un 421. Écrivez une procédure jouertour421(nj,s) qui effectue un tour de jeu à la recherche du 421 : L ordinateur lance les trois dés. Il relance une deuxième fois les dés qui n ont pas de valeurs convenables. Il relance une troisième fois les dés qui n ont pas de valeurs convenables.

Unisciel algoprog Le 421 Contre l ordinateur / it12 5 A l issue des lancers, affichez la combinaison obtenue puis restituez le nombre de jetons potentiellement gagnés dans nj et l évaluation de la combinaison réalisée dans s. Complétez la procédure jouertourst pour qu elle appelle la stratégie ci-dessus dans le cas où st vaut 2. 1.4 Recherche du Brelan Cette stratégie consiste à tout faire pour obtenir un brelan. Son fonctionnement est le même que son homologue pour le 421. Écrivez une procédure rejouertourbrelan(d1,d2,d3) qui relance un ou plusieurs dés afin (de tenter) d obtenir un brelan. La combinaison définie par d1, d2 et d3 est telle que d1>=d2>=d3 et elle n est pas un brelan. Aide méthodologique Si d1 vaut d2, relancez d3. Sinon si d2 vaut d3, relancez d1. Sinon si d1 vaut d3, relancez d2. Sinon relancez deux dés.

Unisciel algoprog Le 421 Contre l ordinateur / it12 6 Copiez/collez la procédure jouertour421 en la procédure jouertourbrelan(nj,s) et remplacez l appel de la procédure rejouertourxxx. Complétez la procédure jouertourst pour qu elle appelle la stratégie ci-dessus dans le cas où st vaut 3. 1.5 Recherche tierce Cette stratégie consiste à tout faire pour obtenir une tierce. Son fonctionnement est similaire à celui de la recherche du brelan. Copiez/collez la procédure rejouertourbrelan en la procédure rejouertourtierce(d1,d2,d3) puis modifiez-la de sorte qu elle recherche une tierce. La combinaison définie par d1, d2 et d3 est telle que d1>=d2>=d3 et elle n est pas une tierce. Aide méthodologique Si d1 vaut d2+1, relancez d3. Sinon si d2 vaut d3+1, relancez d1. Sinon si d1 vaut d3+2, relancez d2. Sinon relancez deux dés (ici le plus grand d1 et le plus petit d3).

Unisciel algoprog Le 421 Contre l ordinateur / it12 7 Copiez/collez la procédure jouertour421 en la procédure jouertourtierce(nj,s) et remplacez l appel de la procédure rejouertourxxx. Complétez la procédure jouertourst pour qu elle appelle la stratégie ci-dessus dans le cas où st vaut 4. 1.6 Stratégie Préférence Cette stratégie consiste à évaluer à «combien de dés» forme une combinaison (421, brelan ou tierce). Pour cela, il faut d abord écrire les fonctions combienxxx dont les paramètres d1, d2 et d3 tels que d1>=d2>=d3 forment une combinaison. Écrivez une fonction evalbool(b) qui renvoie 1 si un booléen b est Vrai, 0 sinon. Écrivez une fonction combien421(d1,d2,d3) qui calcule et renvoie le nombre de dés à relancer pour obtenir un 421. Aide méthodologique C est la même stratégie que la procédure rejouertour421 mais à la place de relancer les dés, on les évalue.

Unisciel algoprog Le 421 Contre l ordinateur / it12 8 De même, écrivez une fonction combienbrelan(d1,d2,d3) qui calcule et renvoie le nombre de dés à relancer pour obtenir un brelan. Enfin écrivez une fonction combientierce(d1,d2,d3) qui calcule et renvoie le nombre de dés à relancer pour obtenir une tierce. Écrivez une fonction combinaison(d1,d2,d3) qui teste et renvoie Vrai si la combinaison de dés est un 421, un brelan ou une tierce, Faux sinon. Écrivez alors une procédure jouertourpref(nj,s) qui élabore alors la stratégie suivante, dans l ordre de préférence : À un dé d avoir un 421, on le tente. À un dé d avoir un brelan, on le tente. À deux dés d avoir un 421, on le tente. À un dé d avoir une tierce, on la tente. Sinon, on cherche le 421.

Unisciel algoprog Le 421 Contre l ordinateur / it12 9 Complétez la procédure jouertourst pour qu elle appelle la stratégie ci-dessus dans le cas où st vaut 5. Validez vos procédures avec la solution. Solution simple alg @[pg-ret421a1.alg] 1.7 Jouer Lancez plusieurs parties pour opposer des stratégies différentes.

Unisciel algoprog Le 421 Contre l ordinateur / it12 10 Imaginez une solution pour évaluer par programme quelle stratégie est la meilleure. 1.8 Stratégie ultime C est la stratégie ultime que nous vous laissons mettre au point.