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. »








l'Humanité ma famille