Das Zebra-Rätsel ist ein berühmtes Logikrätsel mit fünf Häusern, von denen jedes in einer anderen Farbe gestrichen ist. Die Häuser haben verschiedene Bewohner, die unterschiedliche Nationalitäten haben, unterschiedliche Haustiere besitzen, unterschiedliche Getränke trinken und unterschiedlichen Hobbys nachgehen.
Um das Rätsel zu lösen, bekommst du 15 Aussagen, die die Lösung beschreiben. Nur wenn du die Informationen aus allen Aussagen kombinierst, kannst du die Lösung des Rätsels finden.
Das Zebra-Rätsel ist ein Constraint-Satisfaction-Problem (CSP). Bei einem solchen Problem hast du eine Menge möglicher Werte und eine Menge von Einschränkungen, die festlegen, welche Werte gültig sind. Ein weiteres bekanntes CSP ist Sudoku.
Deine Aufgabe ist es, das Zebrarätsel zu lösen und so die Antworten auf diese beiden Fragen zu finden:
Die folgenden 15 Aussagen gelten alle als wahr:
Außerdem ist jedes der fünf Häuser in einer anderen Farbe gestrichen, und ihre Bewohner haben unterschiedliche Nationalitäten, halten unterschiedliche Haustiere, trinken unterschiedliche Getränke und gehen unterschiedlichen Hobbys nach.
Es gibt 24 Milliarden (5!⁵ = 24,883,200,000) mögliche Lösungen, also versuche, so viele Lösungen wie möglich auszuschließen.
Melde dich bei Exercism an, um PHP mit 11 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.
Entdecke 8 verschiedene Wege, die Lösung des Zebra-Rätsels aus 24 Milliarden möglichen Lösungen zu finden, darunter das möglichst frühe Verwerfen ungültiger Permutationen, der AC-3-Algorithmus, eine sehr kompakte logikbasierte Lösung und sogar ein genetischer Algorithmus!