Trilhas
/
Kotlin
Kotlin
/
Exercícios
/
Quebra-cabeça da zebra
Quebra-cabeça da zebra

Quebra-cabeça da zebra

Difícil

Introdução

O Zebra Puzzle é um famoso quebra-cabeça de lógica com cinco casas, cada uma pintada de uma cor diferente. As casas têm moradores diferentes, que têm nacionalidades diferentes, criam animais de estimação diferentes, bebem bebidas diferentes e têm hobbies diferentes.

Para ajudar você a resolver o quebra-cabeça, são dadas 15 afirmações que descrevem a solução. No entanto, só combinando as informações de todas as afirmações você vai conseguir encontrar a solução do quebra-cabeça.

Note

O Zebra Puzzle é um problema de satisfação de restrições (CSP). Em um problema assim, você tem um conjunto de valores possíveis e um conjunto de restrições que limitam quais valores são válidos. Outro CSP bem conhecido é o Sudoku.

Instruções

Sua tarefa é resolver o Enigma da Zebra para encontrar a resposta a estas duas perguntas:

  • Qual dos moradores bebe água?
  • Quem é o dono da zebra?

O enigma

As 15 afirmações a seguir são todas verdadeiras:

  1. Existem cinco casas.
  2. O inglês mora na casa vermelha.
  3. O espanhol é o dono do cachorro.
  4. A pessoa que mora na casa verde bebe café.
  5. O ucraniano bebe chá.
  6. A casa verde fica imediatamente à direita da casa de marfim.
  7. Quem tem o caracol gosta de dançar.
  8. Quem mora na casa amarela é pintor.
  9. A pessoa que mora na casa do meio bebe leite.
  10. O norueguês mora na primeira casa.
  11. Quem gosta de ler mora na casa ao lado da pessoa que tem a raposa.
  12. A casa do pintor fica ao lado da casa onde está o cavalo.
  13. Quem joga futebol bebe suco de laranja.
  14. A pessoa japonesa joga xadrez.
  15. O norueguês mora ao lado da casa azul.

Além disso, cada uma das cinco casas é pintada de uma cor diferente, e seus moradores têm nacionalidades diferentes, têm animais de estimação diferentes, bebem bebidas diferentes e praticam hobbies diferentes.

Note

Existem 24 bilhões (5!⁵ = 24.883.200.000) de soluções possíveis, então tente descartar o maior número possível de soluções.


Fonte

WikipediaO link abre em uma nova janela ou aba
Editar via GitHub O link abre em uma nova janela ou aba
Kotlin Exercism

Tudo pronto para começar Quebra-cabeça da zebra?

Crie sua conta no Exercism para aprender e dominar Kotlin com 88 exercícios e mentoria humana de verdade, tudo de graça.

Mergulho profundo em Quebra-cabeça da zebra!

Explore 8 maneiras diferentes de encontrar a solução do Zebra Puzzle entre 24 bilhões de soluções possíveis, incluindo ignorar permutações inválidas o quanto antes, o algoritmo AC-3, uma solução baseada em lógica bem sucinta e até um algoritmo genético!