Albert Einstein kdysi vymyslel takovou hádanku…
Traduje se, že o ní prohlásil, že ji dokáží vyřešit dvě procenta populace, z toho procento jsou programátoři :-)
Vedle sebe v řadě stojí pět domů. Každý má jinou barvu. V každém bydlí jeden člověk. Každý je jiné národnosti, pije jiný nápoj, chová jiné zvíře a každý kouří jiné doutníky.
A teď omezující podmínky (constraints):
A ptáme se: Kdo chová ryby?
To procento populace z řad programátorů si s hádankou poradí proto, že ji namodelují v Prologu, Lispu, XSLT nebo SQL (či obecně nějakém deklarativním programovacím jazyce) a nechají ji vyřešit počítač.
Zbylému procentu populace prozradím (jestli nechcete, tak dál nečtěte!),
že k vyřešení je nejlepší použít
…
tabulky. Pro každou vlastnost si vytvořte tabulku. Do nich vepisujte možnosti, které připadají v úvahu. V podstatě je to stejné jako sudoku… Postupně vám vykrystalizuje řešení.