Bonsoir,
Si comme Soun, vous avez pris le temps de résoudre cette énigme, vous vous êtes aperçu que 99% des opérations à réaliser s’apparentent à des calculs machinaux et rédhibitoires.
Alors que diriez-vous si nous pouvions laisser l’ordinateur s’occuper de ces tâches rebutantes et automatiques ? Ne serait-ce pas plus futé ?
Comment s’y prendre ? Ma foi, ce n’est pas si compliqué que cela…
D’abord, on a un super calculateur sous la main : notre ordinateur.
Puis, le problème est déjà formalisé sur une feuille du prodigieux tableur Excel.
Troisième point… euh le troisième point, c’est notre cerveau d’Homo Sapiens Sapiens ! Oui, mettons nos neurones en piste, ils vont faire des étincelles !
Alors il s’agit d’observer empiriquement les quelques règles que nous employons pour résoudre ce problème, puis de les axiomiser sous forme d’algorithme, de les implémenter avec un langage très facile, Visual Basic, et d’expérimenter nos petits bouts de code sur des exemples simples et concrets.
Mais avant de commencer à entrer dans le vif du sujet, parlons esthétique !
Un tableau avec des « 0 » et des « 1 », ça fait hideusement binaire. Imaginons donc une représentation moins prosaïque, moins triviale, et plus colorée... un camaïeu de gris qui mettrait en relief des cases de couleur vermeille…
Petit clin d’œil d’imposteur ;-), le programme sélectionne chaque case traitée… or ce n’est d’aucune utilité, hormis celle de créer un bel effet visuel de screening… c'est-à-dire l’image d’un curseur qui parcourt l’ensemble des cases pendant l’exécution du soft.
Bref, on aboutit à la transformation suivante :

Trêve de coloriage, passons maintenant aux choses sérieuses.
Vous avez surement constaté ô combien ennuyant il était d'aligner une file de « 0 » dés lors qu’une case de la même ligne ou colonne contenait un « 1 ».
Aussi, on peut imaginer une boucle qui procède à cette initialisation à notre place :
Et voici ce que ça donne :

De même, il faut envisager le cas de figure inverse, c’est-à-dire :

Tel est justement l’objet de ces quelques lignes :
Bien… marquons une pause. La suite est encore plus ardue… il faut bien une nuit blanche pour fignoler le bon algorithme, le cœur même de notre programme.
Approchez-vous, cessez de mâcher d’un air distrait ce chewing-gum et prêtez l’oreille… ou plutôt ouvrez l’œil.
Voyez-vous lors de la construction de ce diagramme, rien n’a été laissé au hasard. Nous avons veillé à ordonner les éléments de la manière suivante :

Excepté la nationalité et l’adresse de nos musiciens, l’ensemble de leurs caractéristiques figurent à la fois en abscisse et en ordonnée, classées suivant l’ordre indiqué par les flèches rouges. Cela peut sembler anodin, mais veuillez croire que cette petite astuce simplifie l’abord du problème d’un facteur incommensurable !
En fait, le but ultime est d’associer à chaque opération de traitement et de fouille des données une transformation d’ordre géométrique dite isométrie (translation ou rotation). Mais un bon schéma vaut mieux qu’un long discours :

La suite de données va subir une translation suivant un vecteur bien précis, de sorte que – dans l’exemple considéré – les caractéristiques (nationalité, adresse et essence d’arbre préférée) du trompettiste soient fusionnées avec celle du conducteur de Renault, puisqu’il s’agit de la même personne.
Et les autres caractéristiques ? Quelles autres ? Le sport ? Ah oui, j’ai manqué d’oublier ce léger détail. Justement, c’est là qu’intervient la rotation… une rotation associée à une réflexion… bref nous restons dans le domaine des transformations affines isométriques.

Bien, l’essentiel a été dit… ce qui suit n’est que bidouillage… des astuces informatiques pour donner vie à ces beaux algorithmes.
J’ai omis de citer un dernier type de fusion de données inter-tableau… mais peu importe, ceux que ça intéresse pourront se pencher plus longuement sur le code.
A présent, il ne vous reste plus qu’à télécharger cette feuille Excel, et à vous lancer !
Une fois le fichier Enigme.xls ouvert, complétez le tableau selon les indications de l’énoncé :
1) Le Japonais a un jardin plein de cerisiers.
(un « 1 » à l’intersection de « japonais » et « cerisiers »)
2) Le Portugais joue du piano.
(un « 1 » à l’intersection de « portugais » et « piano »)
3) L’Australien pratique la natation.
(un « 1 » à l’intersection de « australien » et « natation »)
4) Celui qui aime les chênes pratique le handball.
(un « 1 » à l’intersection de « chênes » et « handball »)
5) Le guitariste a une Seat Ibiza.
(un « 1 » à l’intersection de « guitariste » et « Seat »)
6) Le conducteur de la Renault Mégane a planté des sapins.
(un « 1 » à l’intersection de « Renault » et « sapins »)
7) L’habitant de la maison du centre pratique la boxe.
(un « 1 » à l’intersection de « maison 3 » et « boxe »)
8) Le Sénégalais habite la première villa.
(un « 1 » à l’intersection de « sénégalais » et « maison 1 »)
9) La conducteur de la Skoda Fabia pratique l’athlétisme.
(un « 1 » à l’intersection de « Skoda » et « athlétisme »)
10) Le Brésilien a une Toyota Corolla.
(un « 1 » à l’intersection de « brésilien » et « Toyota »)
11) Le Sénégalais habite à côté de la villa au jardin de pommiers.
(un « 1 » à l’intersection de « maison 2 » et « pommiers »)
12) L’amateur de tennis réside à côté du conducteur de la Peugeot 207.
(un « 0 » à l’intersection de « tennis » et Peugeot »)
13) Le jardin avec des chênes se trouve à gauche de celui avec des érables.
(un « 0 » à l’intersection de « maison 1 » et « érables » ;
un « 0 » à l’intersection de « chênes » et « maison 5 »)
14) Le batteur vit à côté du conducteur de la Peugeot 207.
(un « 0 » à l’intersection de « batterie » et « Peugeot »)
15) Celui qui possède une Renault Mégane habite à côté du violoniste.
(un « 0 » à l’intersection de « Renault » et « Violon »)
Et ainsi, nous obtenons le tableau suivant :

A présent, passons la main à l’ordinateur, et pressons du doigt sur le bouton « Badaboum ! ».
Et voilà le résultat !

Pas fameux en effet…
Pas brillant, certes… mais avons-nous entré toutes les données ? Bien sûr que non.
Alors voyons comment l’on peut encore documenter notre tableau magique…
« Le jardin avec des chênes se trouve à gauche de celui avec des érables »
Hmmm… intéressant ! Vraisemblablement, ici se trouve le point culminant de la difficulté, somme toute modeste, de cette énigme… en d’autre termes, voici la clé du problème !
Alors déverrouillons gaiment…

Nous relevons que des pommiers croissent dans l’éden de la seconde villa.
Or les chênes collent à la droite des érables.
Donc aucun chêne ne peut se trouver sur le terrain de la première maison.

Par un raisonnement similaire, nous aboutissons à ceci :

Nous avons assez chauffé nos méninges, à présent grillons le processeur !
Badaboum !
Hmmm… comme à l’école des sorciers de Poudlard, il arrive que les formules magiques ne fonctionnement pas du premier coup… ou du moins pas entièrement. Alors, je vous invite à répéter avec plus de conviction :
Badaboum !
Voilà qui est mieux :-)

Et maintenant, que constate-t-on ? L’adresse de la Renaud Mégane nous a été dévoilée : il s’agit de la maison 1.
Or n’oublions pas que « celui qui possède une Renault Mégane habite à côté du violoniste ».
Donc le violoniste occupe la maison 2 !

Baguette magique en main, disons encore…
Badaboum !

Tiens ! Un tennisman habite la première maison !
Mais ne dit-on pas que « l’amateur de tennis réside à côté du conducteur de la Peugeot 207 » ?
En toute logique, la Peugeot 207 stationne devant la maison 2 !

Badaboum !

Ne reste plus que la seconde véritable difficulté de cet exercice, celle où il faut retranscrire « Le batteur vit à côté du conducteur de la Peugeot 207 » de la façon suivante :
Le propriétaire de la Peugeot vit dans la maison 2, donc la batterie est installée dans la cave des maisons 1 ou 3 mais surement pas dans celle des maisons 4 ou 5.
Par conséquent,

Et là c’est le bouquet final !
Badaboum une fois !
Badaboum deux fois !
Badaboum trois fois !
…quatre fois !
Cinq fois !
Et un ultime Badaboum !

Mes félicitations ! En entrant exactement treize « 1 » et neuf « 0 », et en pressant onze fois le bouton « Badaboum ! », vous être parvenu à élucider ce mystère : « le trompettiste est bien brésilien ».
Ne fut-ce pas un jeu d’enfant ?
Pour conclure notre imposture, cette démonstration peut sembler à certains quelque peu sibylline, et ce malgré les nombreuses illustrations.
Par conséquent, s'il vous est difficile de saisir l'ensemble de l'exposé, veuillez considérer ces quelques lois fondamentales et autres axiomes:
Loi d’Incompréhension de Midoux
« S’il y a quelque chose que vous ne comprenez pas, c’est que c’est évident. »
Par ailleurs, s'il vous êtes perplexe devant un problème, dites vous ceci :
Principe d’Incertitude de Murphy
« Celui qui hésite a sans doute raison »
Et dès lors, vous pouvez appliquer cet algorithme, qui sied particulièrement à l'énigme des cinq musiciens :
Algorithme d’Hufschmitt de Reconnaissance de Caractères
« - Lancer la reconnaissance sur un caractère ;
- Comme d’après la loi de Murphy le caractère reconnu n’est pas le bon, on l’enlève de la liste.
- On recommence jusqu’à ce qu’il ne reste plus qu’un seul caractère dans la liste et là forcément c’est le bon... Quoique. »
Et puis, si votre programme se met a bugger de façon intempestive... ou bien s'il arrive à la solution exacte, ne perdez pas de vue la vérité de ce théorème :
Théorème logique de Dac
« Une erreur peut devenir exacte, selon que celui qui l’a commise s’est trompé ou non. »
Enfin, pour échapper au désespoir, que cette maxime soit la votre !
Dixième Règle de Finagle
« Ne croyez pas aux miracles. Comptez dessus. »
Merci à Firenze pour cette fabuleuse énigme :
« Cinq musiciens de nationalités différentes habitent côte à côte dans cinq villas. Chaque musicien possède une voiture de marque différente et un jardin avec un genre d’arbres précis. Chacun d’eux aussi pratique un sport différent et joue d’un instrument de musique bien précis. Les villas sont en rangée, numérotées de 1 à 5 dont la première est à gauche. Voici tout d’abord quelques données :
- Le Japonais a un jardin plein de cerisiers.
- Le Portugais joue du piano.
- L’Australien pratique la natation.
- Le jardin avec des chênes se trouve à gauche de celui avec des érables.
- Celui qui aime les chênes pratique le handball.
- Le guitariste a une Seat Ibiza.
- Le conducteur de la Renault Mégane a planté des sapins.
- L’habitant de la maison du centre pratique la boxe.
- Le Sénégalais habite la première villa.
- Le batteur vit à côté du conducteur de la Peugeot 207.
- Celui qui possède une Renault Mégane habite à côté du violoniste.
- La conducteur de la Skoda Fabia pratique l’athlétisme.
- Le Brésilien a une Toyota Corolla.
- Le Sénégalais habite à côté de la villa au jardin de pommiers.
- L’amateur de tennis réside à côté du conducteur de la Peugeot 207.
Ma question est : Qui d’entre nos musiciens joue de la trompette ? »
Et bravo au Phénix pour cette réponse très juste :
A présent, vous vous demandez comment parvenir à cette solution ?
Le brillant Mkidech vous dirait qu’ « il suffit d'être méthodique et on y arrive à coup sûr ».
Certes, mais quelle méthode adopter ?
Et à lui de rétorquer qu’il s’agit d’un « un problème de satisfaction de contraintes ».
En effet, c’est bien cela.
En fait, cette sorte d’énigme, très répandue, est connue de longue date. Même le brillant théoricien de la relativité, Albert Einstein, en a imaginée une.
Du reste, bien avant la mode du sudoku, elles étaient très appréciées des gribouilleurs de mots-croisés, mot-fléchés, parties d’échec sur papier glacé… etc.
La façon d’aborder le problème, la plus aisée qui soit, passe par la création d’un tableau à double entrée, comme suit.

Il s’agit ensuite de transformer chacune des hypothèses de départ en un rond ou une croix, un « 1 » ou « 0 », un « oui » ou un « non » à la case qui convient… suivant qu’il existe un lien d’intersection ou non entre l’élément en abscisse, et celui en ordonnée.
Prenons l’exemple du jardiner… euh pardon… du « japonais qui a un jardin plein de cerises »
Pour figurer cette affirmation sur notre diagramme, veuillez cocher la case sise à l’intersection de la ligne « japonais » et de la colonne « cerisiers ». Voilà, parfait !

A présent, si on sait que les cerises sont exclusivement réservées au musicien nippon, alors on peut dire sans rougir que le brésilien, l’australien, sénégalais et le portugais n’ont pas de cerisiers.

De même, on peut raturer la ligne suivante pour signifier que le japonais n’a ni chênes, ni érables, ni pommiers, ni sapins dans son jardin.

Bonté divine ! mais vous êtes brillants ! à l’aide d’une seule affirmation, vous êtes parvenu à noircir 1,2,3…6, 8, 9… oui nous comptons bien neuf cases sur les 375 que présente notre damier ! Il n’y a qu’un mot à dire : « bravo ».
Mais ne nous endormons pas sur nos lauriers, ne restons pas en si bon chemin… poursuivons !
Par le même procédé, il vous sera possible de formaliser encore dix propositions affirmatives. Mais quid de celles qui sont plus ambigües… telles que « l’amateur de tennis réside à côté du conducteur de Peugeot 207 » ?
En fait, mine de rien, cette petite phrase déborde d’informations. La première info porte sur la quiddité du propriétaire de la Peugeot. Eh bien, ce n’est pas le tennisman. Ça se traduit donc par un 0 à la case Peugeot/Tennis.

Par ailleurs, se cache une donnée d’ordre topographique : les maisons de ces deux quidams sont attenantes. Certes, il ne nous est pas possible de l’exploiter dans l’immédiat, mais gardons la bien au chaud sur un bout de papier… elle saura se rendre crucialement utile le moment venu.
Voyez-vous, il faut se garder de négliger ces vétilles d’allure insignifiante. Prenons un autre exemple, un chouya plus subtile : « le jardin avec des chênes se trouve à gauche de celui avec des érables »
Ici, non seulement ces deux éléments sont contigus, mais en plus, l’un est à gauche de l’autre ! Votre esprit vif va promptement et naturellement se dire « Fichtre ! Si il y’a une maison à gauche du pavillon aux érables, alors ce dernier ne peut pas se trouver à l’extrême gauche du pâté de maison ! »
Elémentaire. Et réciproquement, les chênes ne seront pas tout à droite.

Ainsi, avec une approche méthodique et minutieuse… mais pas vraiment brillante, puisqu’il n’y a rien de brillant à compléter une grille du loto… bref, par cette approche, on peut résumer en grande partie la dite énigme de Firenze par le tableau suivant :

Ensuite vient le moment de l’observation…
On sait par exemple que le Sénégalais habite la première maison. On sait aussi qu’il loge près des pommiers. Donc le syllogisme conclut à ce que les résidents de la maison 2 mangent des pommes.

Mais en fait, la plus grosse partie de votre laborieux travail est de déduire d’un lien d’intersection, idéalement une autre intersection, ou bien à défaut l’absence d’intersection.
Concrètement, la gymnastique mentale s’exécute comme suit :
Nous savons que le handballeur a des chênes,
Or nous savons aussi que le propriétaire des chênes n’a pas de Renault,
Donc le handballeur ne roule pas en Renault.

Etc… etc…
Oui, c’est long et limite ennuyeux… et finalement, pas si intelligent comme devinette. En tout et pour tout, elle compte une ou deux petites anicroches, qui peuvent procurer un peu de plaisir à celui qui les surmonte.
C’est pourquoi, l’imposture s’impose à nous…
A suivre.









l'Humanité ma famille