Einstein a écrit une énigme. Il a dit que 98% du monde ne pouvait pas le résoudre.
J'ai résolu cette énigme en environ 25 minutes dans le train pour travailler. C'est simplement une déduction.
L'énigme
Il y a 5 maisons de 5 couleurs différentes d'affilée.
Dans chaque maison vit une personne de nationalité différente.
Les 5 propriétaires boivent un certain type de boisson, fument une certaine marque de cigare et gardent un certain animal de compagnie.
Aucun propriétaire n'a le même animal de compagnie, ne fume la même marque de cigare ou ne boit la même boisson.
Question: à qui appartient le poisson?
Pour résoudre cette énigme, Einstein fournit 15 conseils:
- Le Britannique habite dans la maison rouge.
- Le Suédois garde les chiens comme animaux de compagnie.
- Le Danois boit du thé.
- La maison verte se trouve immédiatement à gauche de la maison blanche.
- Le propriétaire de la maison verte boit du café.
- Le propriétaire qui fume Pall Mall élève des oiseaux.
- Le propriétaire de la maison jaune fume Dunhill.
- Le propriétaire vivant dans la maison centrale boit du lait.
- Le Norvégien vit dans la première maison.
- Le propriétaire qui fume Blends vit à côté de celui qui garde les chats.
- Le propriétaire qui garde le cheval vit à côté de celui qui fume Dunhill.
- Le propriétaire qui fume des Bluemasters boit de la bière.
- L'Allemand fume Prince.
- Le Norvégien habite à côté de la maison bleue.
- Le propriétaire qui fume Blends vit à côté de celui qui boit de l'eau.
Avec ces conseils, vous pouvez trouver une solution.
Votre tâche: créer un programme qui résoudra cette énigme pour vous. Codage en dur la solution n'est pas autorisée (duh)
Il est autorisé de coder en dur les indices dans n'importe quel format.
Exemple de format:
//Hints in order
(Nationality:Brit)==(Color:Red)
(Nationality:Swede)==(Pet:Dogs)
(Nationality:Dane)==(Drink: Tea)
(Color:Green)/(Color:White)
(Color:Green)==(Drink:Coffee)
(Smoke:PallMall)==(Pet:Birds)
(Color:Yellow)==(Smoke:Dunhill)
(House:3)==(Drink:Milk)
(Nationality:Norwegian)==(House:1)
(Smoke:Blend)/\(Pet:Cats)
== signifie égal à
/ signifie à gauche de
\ signifie à droite de
/ \ signifie à gauche ou à droite de
Comme je l'ai dit, il est possible soit de coder en dur, soit de les avoir en entrée.
Sortie: La sortie doit être au format suivant (avec les valeurs correctes, juste pour les trolls;))
_____________ _____________ _____________ _____________ _____________
| Number | | Number | | Number | | Number | | Number |
| Nationality | | Nationality | | Nationality | | Nationality | | Nationality |
| Color | | Color | | Color | | Color | | Color |
| Drink | | Drink | | Drink | | Drink | | Drink |
| Smoke | | Smoke | | Smoke | | Smoke | | Smoke |
| Pet | | Pet | | Pet | | Pet | | Pet |
--------------- --------------- --------------- --------------- ---------------
The <Nationality> in the <Color> house owns the fish!
Les boîtes d'art Ascii peuvent être modifiées par vous, tant qu'elles sont des boîtes, peu importe les symboles que vous utilisez.
Aucune connaissance de cette énigme et de cette solution ne peut être utilisée dans le programme. Il devrait utiliser la logique pure et la déduction pour résoudre l'énigme.
Taggé comme un codegolf mais pourrait être un défi de code, je ne sais pas. N'hésitez pas à partager vos réflexions sur les critères de réussite pour un défi de code :)
Pour l'instant, il s'agit de code-golf, donc le programme avec le plus petit nombre de victoires gagne.
Bonne chance et bon codage :)