Einstein schrieb ein Rätsel. Er sagte, dass 98% der Welt es nicht lösen könnten.
Ich habe dieses Rätsel in ungefähr 25 Minuten gelöst, als ich mit dem Zug zur Arbeit fuhr. Es ist im Grunde nur Abzug.
Das Rätsel
Es gibt 5 Häuser in 5 verschiedenen Farben hintereinander.
In jedem Haus wohnt eine Person mit einer anderen Nationalität.
Die 5 Besitzer trinken eine bestimmte Art von Getränk, rauchen eine bestimmte Zigarre und halten ein bestimmtes Haustier.
Kein Besitzer hat dasselbe Haustier, raucht dieselbe Zigarre oder trinkt dasselbe Getränk.
Frage: Wem gehört der Fisch?
Um dieses Rätsel zu lösen, gibt Einstein 15 Tipps:
- Der Brite wohnt im roten Haus.
- Der Schwede hält Hunde als Haustiere.
- Der Däne trinkt Tee.
- Das Gewächshaus befindet sich unmittelbar links vom Weißen Haus.
- Der Besitzer des Gewächshauses trinkt Kaffee.
- Der Besitzer, der Pall Mall raucht, züchtet Vögel.
- Der Besitzer des gelben Hauses raucht Dunhill.
- Der im Zentrum wohnende Besitzer trinkt Milch.
- Der Norweger wohnt im ersten Haus.
- Der Besitzer, der Blends raucht, wohnt neben dem, der Katzen hält.
- Der Besitzer, der das Pferd hält, wohnt neben dem, der Dunhill raucht.
- Der Besitzer, der Bluemasters raucht, trinkt Bier.
- Der Deutsche raucht Prince.
- Der Norweger wohnt neben dem blauen Haus.
- Der Besitzer, der Blends raucht, wohnt neben demjenigen, der Wasser trinkt.
Mit diesen Hinweisen können Sie zu einer Lösung kommen.
Ihre Aufgabe: Erstellen Sie ein Programm, das dieses Rätsel für Sie löst. Hardcodierung der Lösung ist nicht erlaubt (duh)
Es ist erlaubt, die Hinweise in jedem Format fest zu codieren.
Beispielformat:
//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)
== bedeutet gleich
/ bedeutet links von
\ bedeutet rechts von
/ \ bedeutet links oder rechts von
Wie ich schon sagte, es ist entweder erlaubt, Hinweise fest zu codieren oder sie als Eingabe zu haben.
Ausgabe: Die Ausgabe sollte im folgenden Format erfolgen (mit den richtigen Werten, nur für die Trolle;))
_____________ _____________ _____________ _____________ _____________
| 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!
Ascii Art-Boxen können von Ihnen geändert werden, solange es sich um Boxen handelt, unabhängig davon, welche Symbole Sie verwenden.
Jegliches Wissen über dieses Rätsel und diese Lösung kann nicht im Programm verwendet werden. Es sollte reine Logik und Ableitung verwenden, um das Rätsel zu lösen.
Markiert dies als Codegolf, könnte aber eine Code-Herausforderung sein, nicht sicher. Überlegungen zu den Gewinnkriterien für eine Code-Herausforderung können Sie gerne weitergeben :)
Derzeit ist dies Codegolf, sodass das Programm mit dem niedrigsten Bytecount gewinnt.
Viel Glück und viel Spaß beim Programmieren :)