A Zebra Puzzle egy híres logikai rejtvény, amelyben öt ház van, és mindegyik más színre van festve. A házakban különböző lakók élnek: más-más nemzetiségűek, más-más háziállatot tartanak, más-más italt isznak, és más-más hobbinak hódolnak.
Hogy könnyebben megoldd a rejtvényt, 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 összekapcsolod.
A Zebra Puzzle egy megkötés-kielégítési probléma (CSP). Egy ilyen feladatban adott egy lehetséges értékekből álló halmaz, valamint egy megkötéshalmaz, 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:
A következő 15 állítás mindegyike igaz:
Ráadásul mind az öt ház különböző színűre van festve, a lakóik pedig 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ő hobbinak hódolnak.
24 milliárd (5!⁵ = 24 883 200 000) lehetséges megoldás létezik, ezért próbáld minél több megoldást kizárni.
Minden nemzetiséget egyetlen betű jelöl. (E = Englishman, J = Japanese, N = Norwegian, S = Spaniard, U = Ukrainian)
| Regiszter | Használat | Típus | Leírás |
|---|---|---|---|
$v0 |
kimenet | byte | a vizet ivó személy nemzetisége |
$v1 |
kimenet | byte | a zebra tulajdonosának nemzetisége |
$t0-9 |
ideiglenes | bármilyen | ideiglenes tároláshoz |
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) MIPS Assembly 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!