E3-ST – IGI-3006Algorithmique et résolution de problèmes Travaux
Transcription
E3-ST – IGI-3006Algorithmique et résolution de problèmes Travaux
Jean-Claude GEORGES Figure 1 — Le générateur de l’horloge de 10 ka E3-ST – IGI-3006 Algorithmique et résolution de problèmes Travaux dirigés http://longnow.org/clock/ ESIEE Paris The 10,000 Year Clock Project Construire une horloge qui durera au moins 10 000 ans, avancera d’un cran par an, sonnera une fois par siècle, et de laquelle le coucou sortira une fois par millénaire. Conseils pour résoudre un problème Comprendre le problème Élaborer une stratégie Mettre en œuvre la stratégie Analyser la résolution Comprendre le problème est un aspect important de la résolution. Pourtant, de nombreuses difficultés dans la résolution de problèmes proviennent du fait que les résolveurs n’ont pas ou ont mal compris le problème. Il faut être capable de répondre aux questions : Pólya mentionne plusieurs manières d’aborder un problème pour élaborer une stratégie. Toutefois, selon lui, le meilleur apprentissage se fera en résolvant de nombreux problèmes : le choix entre différentes stratégies sera de plus en plus facile et rapide. Voici une liste de conseils : Cette étape est généralement plus facile que de concevoir le plan. En général, tout ce dont on a besoin est de la concentration et de la patience (il faut toutefois avoir les les compétences nécessaires). Il est souvent nécessaire d’approfondir la stratégie choisie. Si elle n’aboutit pas, il faut ne pas hésiter à l’abandonner et en choisir une autre. La réflexion sur la résolution que l’on vient d’élaborer (démarche + solution) contribue à améliorer l’expertise dans la résolution de problèmes. Qu’est ce qui a marché ? Quelles ont été les fausses pistes ? Pourquoi ? On pourra à l’avenir choisir plus vite et plus sûrement une stratégie pertinente pour résoudre des problèmes liés au problème initial. – Que devez-vous trouver/montrer ? – Êtes-vous capable de reformuler le problème avec vos propres mots ? – Devinez et vérifiez – Pouvez-vous imaginer un dessin, un schéma qui pourrait vous aider à comprendre le problème ? – Éliminez les impossibilités – Y a-t-il suffisamment d’informations pour vous permettre de trouver une solution ? – Comprenez-vous tous les mots utilisés dans l’énoncé ? – Avez-vous besoin d’informations supplémentaires pour trouver la solution ? – Faites une liste ordonnée des possibilités – Utilisez la symétrie – Envisagez des cas particuliers – Utilisez un raisonnement direct – Résolvez une équation En outre, il faut essayer les pistes suivantes : – Recherchez un motif – Faites un dessin – Résolvez un problème plus simple – Avez-vous déjà résolu un problème similaire ? analogue ? plus général ? – Utilisez un modèle – Partez de la conclusion – Utilisez une formule – Utilisez votre imagination, votre créativité – Utilisez votre bon sens 3 TD 1 Boucles et estimations numériques Échauffement Exercice 1.1. La corde Une corde de 101 m de long est accrochée par ses extrémités à deux anneaux distants de 100 m. Si une grue saisit la corde en son exact milieu et la soulève verticalement, jusqu’à quelle hauteur pourrat-elle l’élever sans rupture ? Essayez d’estimer la hauteur (quelques millimètres, quelques centimètres, quelques mètres ?), puis formalisez le problème (faites un dessin, trouvez une formule, calculez le résultat). Le résultat est il conforme à votre estimation ? Exercice 1.2. Volume de stockage En décembre 2013, Alexander Yee et Shigeru Kondo ont battu leur précédent record de calcul du nombre de décimales de π (12, 1 billions, soit 1, 21 · 1013 ). Le calcul a pris 94 jours sur des machines du commerce, un petit peu boostées (cf. fig. 1.1). Si l’on décidait de les imprimer sur du papier A4, conditionné par ramette de 5 cm d’épaisseur contenant chacune 500 feuilles , à raison de 80 chiffres par ligne, de 70 lignes par page et de 2 pages par feuille, quel serait le volume nécessaire pour stocker les décimales de π ? Exercice 1.3. Estimation Le 5 novembre 2009, onze millions d’euros ont été dérobés. Mais comment les transporter si ce butin est en coupures de 200 euros ? Une sacoche ? Une valise ? Un coffre de voiture ? Une camionnette ? Un camion ? Une péniche ? Et onze millions d’euros, en billets de 200, ça pèse combien (voir Figure 1.2) ? Exercice 1.4. Les deux fées Pour de la naissance de la princesse Comparación Dello Crecimiento, les fées Exponenzia et Linearia se penchèrent sur son berceau : Linearia – Jusqu’à ton 22e anniversaire, ce coffre magique se garnira d’un euro supplémentaire par jour. Exponenzia – Voici un coffre qui contient un centime d’euro. À chacun de tes anniversaires, la somme dans le coffre sera doublée. Pour tes cinq ans, tu possèderas donc 32 centimes. Le jour du 22e anniversaire de la princesse, quel coffre sera le plus rempli ? JCG ESIEE Paris IGI-3006 Figure 1.1 — L’ordinateur du record Site du record : http://www.numberworld.org/misc_runs/pi-12t/ Figure 1.2 — Caractéristiques des billets Coupure Taille (mm) Poids (g) 5 euros 120 × 62 × 0,1 0,6 10 euros 127 × 67 × 0,1 0,7 20 euros 133 × 72 × 0,1 0,8 50 euros 140 × 77 × 0,1 0,9 100 euros 147 × 82 × 0,1 1 200 euros 153 × 82 × 0,1 1,1 500 euros 160 × 82 × 0,1 1,1 4 TD 1 BOUCLES ET ESTIMATIONS NUMÉRIQUES L’algorithme de Bresenham Figure 1.3 — L’algorithme de Bresenham (1) Tracer la représentation d’un segment de droite sur un écran composé de pixels est un des programmes les plus fréquemment utilisés. En 1962, Bresenham a proposé un algorithme calculant les points d’un plan discret permettant d’approcher au mieux un segment de droite étant données ses extrémités. Cet algorithme peut être considéré comme fondateur de l’infographie. Comprendre le problème Pour tracer une représentation du segment d’extrémités ( x A , y A ) et ( x B , y B ), il faudra calculer une suite de n points ( xi , yi ) avec ( x0 , y0 ) = ( x A , y A ) et ( xn−1 , yn−1 ) = ( x B , y B ). Quels pixels doit-on allumer ? Figure 1.4 — L’algorithme de Bresenham (2) Exercice 1.5. Faire un dessin Prenez une feuille quadrillée, marquez deux carreaux, tracez un segment reliant les centres de ces deux carreaux (comme sur la figure 1.3). Marquer les carreaux qui devront être allumés. Minimisez le nombre de carreaux (comme sur la figure 1.4). Exercice 1.6. Valeur de n Donnez une expression de n en fonction de ( x A , y A ) et ( x B , y B ). Découper le problème en sous-problèmes plus simples Dans les cas particuliers de segments horizontaux (y A = y B ), verticaux (x A = x B ) ou diagonaux (|y B − y A | = | x B − x A |), le problème devient évident. Exercice 1.7. Simplification du problème Dans la cas général, l’étude n’est nécessaire que sur un huitième de plan. Pourquoi ? Les voilà ! Élaborer une stratégie En considèrant le cas x A < x B , y A < y B et y B − y A < x B − x A (premier octant, comme sur la figure 1.3), on peut construire le couple ( xi , yi ). Exercice 1.8. Détermination des xi Concernant xi , une expression simple le relie à xi−1 . Laquelle ? Exercice 1.9. Détermination des yi Concernant yi , on compare yi−1 à f ( xi ) où f est la fonction affine associée au segment de droite. Quelle est l’expression de f ? La comparaison de f ( xi ) − yi−1 à 12 permet de déterminer yi En déduire une manière de calculer yi en fonction de ( xi−1 , yi−1 ). ESIEE Paris IGI-3006 JCG L’algorithme de Bresenham 5 Mettre en œuvre la stratégie Exercice 1.10. Premier octant Écrivez l’algorithme correspondant au tracé d’un segment dans le premier octant. Exercice 1.11. Cas général Écrivez l’algorithme généralisant aux autres octants et aux segments particuliers. Étudier la solution L’algorithme écrit utilise des réels. En programmation, les calculs sur les réels sont plus coûteux que les calculs sur les entiers. Exercice 1.12. Optimisation Comment modifier l’algorithme pour qu’il ne porte que sur des entiers ? Figure 1.5 — L’algorithme de Bresenham (3) En demandant l’affichage dans l’autre sens, il est possible que ce ne soient pas les même pixels qui s’allument (comparez les figures 1.4 et 1.5). Exercice 1.13. Et vice-versa... Êtes-vous sûr que votre programme affichera les mêmes pixels si l’on intervertit les deux extrémités du segment ? Si ce n’est pas le cas, modifiez-le. Aller plus loin Réfléchissez aux problèmes suivants : L’algorithme est incorrect : dans l’autre sens, ce ne sont pas les mêmes pixels qui s’allument... – le tracé d’arc de cercles ; – le coloriage de l’intérieur d’une figure fermée. Mise en œuvre sur machine Avec votre langage de programmation préféré, écrivez ces algorithmes. Au cas où des problèmes nouveaux (inattendus) sont apparus, sont-ils dus au langage de programmation ? à des erreurs dans la conception algorithmique ? JCG ESIEE Paris IGI-3006 6 TD 2 ILLUSIONS D’OPTIQUE TD 2 Illusions d’optique Échauffement Figure 2.1 — Le peintre Roman Opalka Exercice 2.1. Tournoi de tennis Deux cent trente-sept joueurs sont inscrits à un tournoi de tennis par élimination directe. À chaque tour, si le nombre des joueurs restant en lice est impair, un joueur tiré au sort est exempté et qualifié pour le tour suivant, les autres se rencontrant par paires. Combien de matches au total se dérouleront dans ce tournoi ? Exercice 2.2. Avec une carte En supposant que cela soit physiquement possible, quelle serait la hauteur de la pile obtenue en pliant en deux une carte à jouer de 0,25 mm d’épaisseur 32 fois de suite ? http://opalka1965.com/fr/index_fr.php Figure 2.2 — L’afficheur Note : Un hétérogramme (du grec hétéros : autre et gramma : lettre) est une phrase comportant chaque lettre de l’alphabet au plus une fois. Un pangramme (du grec pan : tous et gramma : lettre) est une phrase comportant toutes les lettres de l’alphabet. Exercice 2.3. Le peintre en chiffres Cet artiste (Figure 2.1) a peint sur ses toiles de 1965 jusqu’à sa mort tous les nombres de 1 à 5 607 249, écrits en chiffres. Combien de fois a-t-il peint le chiffre 9 ? Exercice 2.4. Les poulets Sur une vieille facture, on peut voir que 72 poulets ont été vendus pour un montant de ?67,9? F. Le premier chiffre et le dernier chiffre sont illisibles. Pouvez-vous les déterminer ? Exercice 2.5. Date impaire Le 19/11/1999 a été la dernière date sous la forme jj/mm/aaaa dont tous les chiffres étaient impairs. Quelle sera la prochaine date qui aura cette propriété ? Exercice 2.6. L’afficheur hétéropangrammatique Le huit mars 2008, à neuf heures vingt-trois, le panneau d’affichage (voir Figure 2.2) de la ligne de train affichait la date et l’heure comme suit : 08/03/08 09:23 À quelle date et à quelle heure les dix chiffres de l’affichage seront tous différents ? Et la dernière fois, c’était quand ? ESIEE Paris IGI-3006 JCG Trois illusions 7 Figure 2.3 — L’illusion de Herrmann Trois illusions Ci contre sont représentées trois illusions historiques. On remarquera que : – les taches grises aux intersections des lignes blanches dans l’illusion de Hermann (fig. 2.3) n’existent pas ; – les disques blancs aux intersections des lignes noires dans l’illusion de Ehrenstein (fig. 2.4) n’existent pas ; – les lignes de l’illusion du Café Wall (fig. 2.5) sont parfaitements horizontales. On dispose des procédures suivantes : – ligne(x1,y1,x2,y2,couleur) dessine à l’écran (ou dans une fenêtre) un trait de la couleur spécifiée entre les points de coordonnées (x1,y1) et (x2,y2) Figure 2.4 — L’illusion de Ehrenstein – rectangle(x1,y1,x2,y2,couleur) dessine à l’écran (ou dans une fenêtre) un rectangle plein de la couleur spécifiée dont les sommets diagonalement opposés sont de coordonnées (x1,y1) et (x2,y2) Pour ne pas alourdir l’écriture des algorithmes, on supposera connues (et globales) les dimensions de l’écran (ou de la fenêtre), de (0,0) à (XMAX-1,YMAX-1). Exercice 2.7. Les trois illusions Étudiez ces trois illusions. Pour chacune d’entre elles, précisez les données qui permettraient de la dessiner sans ambiguïté (positions, tailles, décalages, etc.), puis spécifiez les paramètres d’une procédure permettant de la dessiner. Précisez la construction du dessin de chaque illusion en sous-constructions (lignes, carreaux, etc.) Spécifiez et écrivez l’ensemble des procédures permettant de dessiner chaque illusion. Mise en œuvre sur machine Avec votre langage de programmation préféré, écrivez ces algorithmes. Au cas où des problèmes nouveaux (inattendus) sont apparus, sont-ils dus au langage de programation ? à des erreurs dans la conception algorithmique ? JCG ESIEE Paris IGI-3006 Figure 2.5 — L’illusion du Café Wall TD 3 8 Figure 3.1 — Syntaxe à utiliser rôle syntaxe affectation s ← "algo" longueur longueur(s) concaténation s+"rithme" consultation s[2] modification s[0]← ’A’ sous-chaine ssch(s,2,3) CHAÎNES ET MOTIFS TD 3 Chaînes et motifs résultat s réfère "algo" 4 "algorithme" ’g’ s réfère "Algo" "go" Dans tout ce TD, on considérera une chaîne comme un tableau de caractères. On s’autorisera l’affectation, la concaténation, la consultation ou la modification d’un caractère et l’extraction d’une sous-chaîne (voir Figure 3.1). Pour mettre en œuvre les algorithmes, des exemples de grands fichiers textes se trouvent aux URL suivantes : – le texte intégral du roman Quatre-vingt-treize de Victor Hugo Unicode ou ANSI – un gros dictionnaire : un mot par ligne Unicode ou ANSI – les communes de France format csv : indicatif département ;nom ;population Unicode ou ANSI Figure 3.2 — Les lettre spéciales en français àâäçéèêëîïôöùûüæœ auquelles on ajoute parfois : åñÿ Échauffement Dans un texte composé en alphabet latin, se rencontrent plusieurs types de caractères : – des lettres de l’alphabet de base (de 'A' à 'Z', de 'a' à 'z') – des variantes diacritées des lettres ('à', 'ç', etc.) – deux ligatures : æ et œ – des chiffres ('0' à '9') Figure 3.3 — Appartenance car chaîne – des signes de ponctuation (',', '(', '?', etc.) résultat – des espaces (' ', '\t', '\n', etc.) Exercice 3.1. Appartenance Créez la fonction qui renvoie Vrai ou Faux selon que son premier paramètre (caractère) appartient ou non à son deuxième paramètre (chaîne de caractère) (voir Figure 3.3). ’e’ "aeiouy" Vrai ’e’ "Noël" Faux Figure 3.4 — Un pangramme portez ce vieux whisky au juge blond qui fume. Figure 3.5 — Un palindrome engage le jeu que je le gagne Exercice 3.2. Pangrammes Créez la fonction qui vérifie qu’une chaîne est un pangramme (c’est-à-dire qu’elle contient toutes les lettres de l’alphabet). On supposera que la chaîne ne contient que des lettres minuscules de l’alphabet de base (sans diacritiques, ni ligatures). (voir Figure 3.4) Exercice 3.3. Palindrome Créez la fonction qui vérifie qu’une chaîne est un palindrome (c’est-à-dire qu’elle se lit, aux ponctuations et espaces près, de droite à gauche comme de gauche à droite). On supposera que la chaîne ne contient que des lettres minuscules de l’alphabet de base (sans diacritiques, ni ligatures). (voir Figure 3.5) ESIEE Paris IGI-3006 JCG Algorithmes du typographe 9 Exercice 3.4. Normalisation d’un mot Créez la fonction qui renvoie la chaîne normalisée d’une chaîne, à savoir sa version tout en minuscules, sans accents, ni ligature. On conservera tels quels les caractères qui ne sont pas des lettres (voir Figure 3.6). Exercice 3.5. Les nombres en français Étant donné un nombre décimal écrit sous sa forme chaîne de caractère dans un langage de programmtion (pas de séparateur de milliers, point décimal), créez la fonction qui retourne la chaîne de caractères contenant sa forme française (espace séparateur de miliers, virgule décimale). (voir Figure3.7) Exercice 3.6. Affichage de polynômes Étant donné un polynôme représenté par le tableau de ses coefficients, créez la fonction qui calcule et affiche les chaînes de caractères contenant sa représentation sur deux lignes (exposants dans la premières lignes et coefficients dans la seconde), de telle sorte que l’on ait un affichage parlant du polynôme (cf. Figure 3.8). Exercice 3.7. The Look And Say Sequence C’est J.H. Conway qui aurait inventé cette suite (voir Figure 3.9) : chaque élément lit l’élément précédent en comptant les chiffres consécutifs identiques. Le prochain terme est 312211. Écrivez l’algorithme calculant la chaîne suivante d’une chaîne s de la suite de Conway. Figure 3.6 — Normalisation chaîne résultat "L’âne et le bœuf" Figure 3.7 — Les nombres à la française donnée résultat "1234" → "1 234" "-3.14159" → "-3,141 59" "12345.67890" → "12 345,678 90" Figure 3.8 — Les polynômes donnée résultat affiché [1, 2, 3, 4] → 3 2 x [3, 0, 0, 0, -1] → Algorithmes du typographe Exercice 3.8. Découpage en mots Écrivez l’algorithme découpant en mots une chaîne de caractères. On utilisera la définition (faible) suivante d’un mot : un mot est une chaîne de caractère commençant par une lettre et se terminant juste avant le prochain caractère non lettre. "l’ane et le boeuf" + 2x 3x 4 + 3x + 4 - 1 Figure 3.9 — La suite de Conway 1 11 21 1211 111221 ... Exercice 3.9. Recherche de doublons Écrivez l’algorithme recherchant et affichant tous les doublons d’une chaîne de caractères (mots identiques séparés par une espace). Exercice 3.10. Plus longue répétition Dans un fichier texte, trouvez la plus longue suite de caractères présente au moins deux fois. Un premier algorithme est en Θ(n2 ). Au prix d’un surcoût de mémoire (un tableau de n entiers indiquant les positions de chaque caractère), on peut trier ce tableau sur le critère de l’ordre lexical des chaînes et comparer les éléments consécutifs. JCG ESIEE Paris IGI-3006 Figure 3.10 — Plus longue répétition 0 1 2 3 4 5 6 7 8 9 10 ABRACADABRA BRACADABRA RACADABRA ACADABRA CADABRA ADABRA DABRA ABRA BRA RA A 10 7 0 3 5 8 1 4 6 9 2 A ABRA ABRACADABRA ACADABRA ADABRA BRA BRACADABRA CADABRA DABRA RA RACADABRA TD 3 10 Figure 3.11 — Texte original LE BOIS DE LA SAUDRAIE Dans les derniers jours de mai 1793, un des bataillons parisiens amenés en Bretagne par Santerre fouillait le redoutable bois de la Saudraie en stillé. On n'était pas plus de trois cents, car le bataillon était décimé par cette rude guerre. C'était l'époque où, après l'Argonne, Jemmapes et Valmy, du premier bataillon de Paris, qui était de six cents volontaires, il restait vingt-sept hommes, du deuxième trente-trois, et du troisième cinquante-sept. Temps des luttes épiques. Les bataillons envoyés de Paris en Vendée comptaient neuf cent douze hommes. Chaque bataillon avait trois pièces de canon. Ils avaient été rapidement mis sur pied. Le 25 avril, Gohier étant ministre de la justice et Bouchotte étant ministre de la guerre, la section du Bon-Conseil avait proposé d'envoyer des bataillons de volontaires en Vendée; le membre de la commune Lubin avait fait le rapport; le 1er mai, Santerre était prêt à faire partir douze mille soldats, trente pièces de campagne et un bataillon de canonniers. Ces bataillons, faits si vite, furent si bien faits, qu'ils servent aujourd'hui de modèles; c'est d'après leur mode de composition qu'on forme les compagnies de ligne, ils ont changé l'ancienne proportion entre le nombre des soldats et le nombre des sous-officiers. CHAÎNES ET MOTIFS Exercice 3.11. Justification de texte Soit une chaîne de caractères (voir Figure 3.11) de grande taille composée de mots séparés par des espaces et de caractères de fin de lignes ('\n'). On considérera qu’un paragraphe se termine par une ligne vide (ne contenant qu’un caractère de fin de ligne). Créer la chaîne de caractère destinée à l’impression justifiée en lignes de 80 caractères. Chaque ligne sera coupée avant le mot dont l’ajout dépasserait la limite (voir Figure 3.12). Algorithmes du dictionnaire Pour chacun des exercices suivants, on réfléchira et on écrira les algorithmes dans les deux contextes suivants : • le dictionnaire est codé sous la forme d’un tableau de mots en mémoire – accès direct au mot no i : dico[i] – taille du dictionnaire : taille(dico) Figure 3.12 — Le même texte justifié LE BOIS DE LA SAUDRAIE Dans les derniers jours de mai 1793, un des bataillons parisiens amenés en Bretagne par Santerre fouillait le redoutable bois de la Saudraie en Astillé. On n'était pas plus de trois cents, car le bataillon était décimé par cette rude guerre. C'était l'époque où, après l'Argonne, Jemmapes et Valmy, du premier bataillon de Paris, qui était de six cents volontaires, il restait vingt-sept hommes, du deuxième trente-trois, et du troisième cinquante-sept. Temps des luttes épiques. Les bataillons envoyés de Paris en Vendée comptaient neuf cent douze hommes. Chaque bataillon avait trois pièces de canon. Ils avaient été rapidement mis sur pied. Le 25 avril, Gohier étant ministre de la justice et Bouchotte étant ministre de la guerre, la section du Bon-Conseil avait proposé d'envoyer des bataillons de volontaires en Vendée; le membre de la commune Lubin avait fait le rapport; le 1er mai, Santerre était prêt à faire partir douze mille soldats, trente pièces de campagne et un bataillon de canonniers. Ces bataillons, faits si vite, furent si bien faits, qu'ils servent aujourd'hui de modèles; c'est d'après leur mode de composition qu'on forme les compagnies de ligne, ils ont changé l'ancienne proportion entre le nombre des soldats et le nombre des sous-officiers. • le dictionnaire est stocké sur support externe (fichier texte) avec impossibilité de le charger complètement en mémoire. – Accès séquentiel au mot : lireMotSuivant(dico) – Accès séquentiel à la fin de la ligne : lireLigne(dico) – Revenir en début de dictionnaire : raz(dico) – Test de fin : fin(dico) retourne Vrai si plus aucun mot à lire, Faux sinon De plus, on supposera qu’une fonction normalise(mot) est disponible (cf. exercice 3.4) Exercice 3.12. Le mot le plus long Étant donné un énoncé (tableau de n lettres de l’alphabet), trouver le mot le plus long du dictionnaire correspondant à cet énoncé. Exercice 3.13. Mots monotones Le mot "dort" est croissant : ses lettres sont en ordre alphabétique (’d’<’o’<’r’<’t’). Saurez-vous trouver un mot croissant de six lettres ? Il y en a au moins trois dont deux sont très communs... Et un mot décroissant de sept lettres ? Exercice 3.14. Les six voyelles Trouvez un mot français (le plus court, si possible) contenant les six voyelles de l’alphabet. ESIEE Paris IGI-3006 JCG 11 TD 4 Ordonnancement Échauffement Exercice 4.1. Quand la mer monte Un bateau ancré dans un port a sur son flanc droit une échelle de secours. À marée basse, il y a 7 échelons hors de l’eau. Sachant que la marée monte de 30 cm par heure et que les échelons sont distants entre eux de 20 cm, combien y aura-t-il d’échelons hors de l’eau après 3 heures de marée montante ? Exercice 4.2. Prouvez que 42 est nul Soit à résoudre l’équation réécriture de (1) multiplication de (1) par x √ mise en facteur de 14 dans les deux derniers termes de (3) √ remplacement dans (4) de x2 + x 14 par sa valeur dans (2) réécriture de (5) résolution de (6) remplacement dans (1) de x par sa valeur dans (7) √ x2 + x 14 + 14 √ x2 + x 14 √ x3 + x2 14 + 14x √ √ x3 + 14( x2 + x 14) √ x3 + 14(−14) x3 x √ 2 √ √ 14 + 14 14 + 14 = 0 = −14 = 0 = 0 = 0 √ = 14 14 √ 14 = (1) (2) (3) (4) (5) (6) (7) = (7) 0 42 = 0 Trouvez l’erreur... Exercice 4.3. La fausse pièce Parmi neuf pièces de monnaies identiques, une d’entre elles est fausse : elle est plus légère que les autres. Comment la déterminer en ne faisant que deux pesées à l’aide d’une balance de Roberval ? Exercice 4.4. Le garde des seaux Avec deux seaux de 3 et 5 litres, comment faire pour ramener exactement 4 litres d’eau de la fontaine ? Exercice 4.5. Se faire cuire un œuf Le temps de cuisson d’un œuf est de quinze minutes. Comment faire le plus rapidement possible si vos seuls instruments de mesure sont deux sabliers, un de sept minutes et un autre de onze minutes ? JCG ESIEE Paris IGI-3006 TD 4 12 ORDONNANCEMENT Ordonnancement Figure 4.1 — Aperçu du livre de Nicolas Chuquet Exercice 4.6. Le loup, la chèvre et le chou Nicolas Chuquet (1450-1488), escripvain et maistre d’algorisme est l’auteur du Triparty en la science des nombres (1484), l’un des premiers traités en français d’algèbre et de géométrie, propose le problème suivant, déjà proposé en latin par Alcuin (735-804) : http://gallica.bnf.fr/ark: /12148/btv1b9058845h/f221 Le jeu du loup de la chevre et du chou Il est ung marchant qui mene vendre au marche ung loup, une chevre et ung chou. Et ainsi qu’il y aloit et conduisoit sa marchandise, en gardant que le loup ne fist oultrage a la chevre et que la chevre ne mangeast le chou, il va trouver une riviere, laquelle il convient qu’il passe en ceste maniere, c’est assavoir que a la foiz il ne peult ne doit passer fors une des troys choses qu’il conduyt, et en telle maniere et façon que le loup, en l’absence du marchant, ne puisse faire dommage a la chevre, ne la chevre au chou. Car si le marchant n’est tousjours present la chevre mangera le chou, ou la chevre sera mangee du loup. Et pourtant, l’on demande commant le marchant pourra passer sa marchandise oultre la riviere sans encourir aulcun dommage. Figure 4.2 — Récréations mathématiques Exercice 4.7. Les maris jaloux Édouard Lucas (1842-1891) revisite le thème dans ses Récréations Mathématiques (1882). Trois maris jaloux se trouvent avec leurs femmes au passage d’une rivière, et rencontrent un bateau sans batelier ; ce bateau est si petit, qu’il ne peut porter plus de deux personnes à la fois. On demande comment ces six personnes passeront, de telle sorte qu’aucune femme ne demeure en la compagnie d’un ou de deux hommes, si son mari n’est présent. Exercice 4.8. Les ponts de Kœnigsberg Dans le même volume, Édouard Lucas revient sur le problème très célèbre des ponts de Kœnigsberg posé et résolu par Leonhard Euler en 1736. http://gallica.bnf.fr/ark: /12148/bpt6k3943s/f47.image À Kœnigsberg, en Poméranie, il y a une île appelée Kneiphof ; le fleuve qui l’entoure se divise en deux bras (fig. 4.2), sur lesquels sont jetés les sept ponts a, b, c, d, e, f, g. Cela posé, peut-on arranger son parcours de telle sorte que l’on passe sur chaque pont, et que l’on ne puisse y passer qu’une seule fois ? Cela semble possible, disent les uns ; impossible, disent les autres ; cependant personne n’a la certitude de son sentiment. Je me suis donc proposé le problème suivant, qui est très général : Quelle que soit la forme d’un fleuve, sa distribution en bras, par des îles en nombre quelconque, et quel que soit le nombre des ponts jetés sur le fleuve, trouver si l’on peut franchir celui-ci en passant une fois, et une seule, sur chacun des ponts. ESIEE Paris IGI-3006 JCG Ordonnancement 13 Exercice 4.9. Singing in the rain Quatre personnes doivent se rendre sous une pluie battante de la station de RER de Noisy-Champs à l’ESIEE. Ils désirent ne pas se mouiller et disposent d’un seul parapluie, permettant d’abriter deux personnes. La plus rapide de ces personnes peut faire le trajet (dans un sens ou dans l’autre) en une minute, la suivante en deux minutes, la troisième en cinq minutes et enfin la plus lente en dix minutes. Si deux personnes marchent sous le parapluie, c’est bien sûr à la vitesse de la plus lente des deux. En combien de temps minimum peuvent-elles toutes se retrouver à l’ESIEE sans se mouiller ? Exercice 4.10. Crash test pour œufs Vous disposez de deux œufs génétiquement modifiés parfaitement identiques. Vous souhaitez savoir à partir de quel étage d’un immeuble de 100 étages ces œufs cassent lorsqu’ils sont lancés par la fenêtre. Quelle est la meilleure stratégie pour effectuer le moins possible de tests dans le pire des cas ? (la stratégie consistant à faire un premier test au 50e étage, puis s’il casse, à tester tous les étages du rez de chaussée au 49e étage n’est pas la meilleure) Évidemment, si un des œufs se casse, il ne peut plus resservir pour un test. Exercice 4.11. Permutation maximale Huit personnes (A, B, C, D, E, F et G) se sont vu attribuer huit cadeaux (1, 2, 3, 4, 5, 6, 7 et 8) dans cet ordre. Malheureusement, elles ne sont pas toutes satisfaites de leurs cadeaux. A et B auraient préféré le cadeau 3, C aurait préféré le cadeau 1, D aurait préféré le cadeau 6 (F aussi, mais il l’a eu), E aurait préféré le cadeau 4, G aurait préféré le cadeau 8 et H aurait préféré le cadeau 5. Peut-on opérer un échange de cadeaux de manière à maximiser le nombre de personnes soit satisfaites ? Évidemment, une personne n’échangera son cadeau que si elle peut obtenir celui qu’elle désire. Exercice 4.12. Après vous... Nos huit personnes désirant franchir une passerelle étroite, font assaut de politesse. « Après vous », disent F et H à C. « Après vous », disent C, F et H à E. « Après vous », disent E, G et D à A. « Après vous », dit E à G. « Après vous », disent C, F et H à D. « Après vous », dit F à H. « Après vous », disent A, H et D à B. Dans quel ordre peuvent-elles passer ? JCG ESIEE Paris IGI-3006