A zebrarejtvény egy híres logikai rejtvény: öt ház szerepel benne, mindegyik más színűre festve. A házakban különböző lakók élnek, akik más-más nemzetiségűek, más-más kedvenc állatot tartanak, más-más italt isznak és más-más márkájú cigarettát szívnak.
Hogy segítsen a rejtvény megoldásában, 15 állítást kapsz, amelyek leírják a megoldást. A rejtvény megoldását azonban csak úgy találhatod meg, ha az összes állításban szereplő információt összeveted.
A zebrarejtvény egy kényszerkielégítési probléma (CSP). Egy ilyen feladatban adott egy lehetséges értékekből álló halmaz, és egy kényszerhalmaz, amely korlátozza, hogy mely értékek érvényesek. Egy másik jól ismert CSP a sudoku.
A feladatod, hogy megoldd a zebrarejtvényt, és megtaláld a választ erre a két kérdésre:
Az alábbi 15 állítás mindegyikéről tudjuk, hogy igaz:
Ráadásul az öt ház mindegyike más színűre van festve, a lakóik különböző nemzetiségűek, különböző háziállatokat tartanak, különböző italokat isznak és különböző márkájú cigarettát szívnak.
24 milliárd (5!⁵ = 24 883 200 000) lehetséges megoldás van, ezért próbáld minél több megoldást kizárni.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Nim nyelvet 70 feladat segítségével, valódi emberi mentorálással, mindez ingyen.
Fedezz fel 8 különböző módot arra, hogy megtaláld a Zebra-rejtvény megoldását 24 milliárd lehetséges megoldás közül, beleértve az érvénytelen permutációk mielőbbi figyelmen kívül hagyását, az AC-3 algoritmust, egy nagyon tömör, logikaalapú megoldást, sőt egy genetikus algoritmust is!