斑马谜题

斑马谜题

困难

简介

斑马谜题是一道著名的逻辑谜题:有五栋房子,每栋涂着不同的颜色。 房子里住着不同的人,他们的国籍不同,养的宠物不同,喝的饮料不同,爱好也不同。

为了帮你解出这道谜题,题目给出了 15 条线索,用来描述谜题的答案。 不过,只有把_所有_线索里的信息结合起来,你才能找到谜题的答案。

Note

斑马谜题是一个约束满足问题(CSP)。 在这类问题中,你会得到一组可能的取值,以及一组限定哪些取值有效的约束。 另一个广为人知的约束满足问题是数独。

说明

你的任务是解开斑马谜题,找出下面两个问题的答案:

  • 哪位住户喝水?
  • 谁养斑马?

谜题

下面这 15 条陈述都是已知为真的:

  1. 一共有五栋房子。
  2. 英国人住在红房子里。
  3. 西班牙人养狗。
  4. 绿房子里的人喝咖啡。
  5. 乌克兰人喝茶。
  6. 绿房子紧挨在象牙色房子的右边。
  7. 养蜗牛的人喜欢跳舞。
  8. 黄房子里的人是画家。
  9. 中间那栋房子里的人喝牛奶。
  10. 挪威人住在第一栋房子里。
  11. 喜欢阅读的人住在养狐狸的人隔壁。
  12. 画家的房子紧挨着养马的房子。
  13. 踢足球的人喝橙汁。
  14. 日本人下国际象棋。
  15. 挪威人住在蓝房子隔壁。

此外,这五栋房子分别刷成不同的颜色,住户的国籍各不相同,养的宠物不同,喝的饮料不同,爱好也各不相同。

Note

一共有 240 亿(5!⁵ = 24,883,200,000)种可能的解,所以试着排除尽可能多的解吧。

输出格式

每种国籍用一个字母表示。(E = Englishman,J = Japanese,N = Norwegian,S = Spaniard,U = Ukrainian)


来源

Wikipedia链接会在新窗口或新标签页中打开
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
ARM64 Assembly Exercism

准备好开始 斑马谜题 了吗?

注册 Exercism,借助 78 个练习 和真人导师指导,学习并掌握 ARM64 Assembly,全部免费。

深入探索 斑马谜题!

探索从 240 亿种可能解中找出斑马谜题答案的 8 种不同方法,包括尽早排除无效排列、AC-3 算法、极其简洁的基于逻辑的解法,甚至还有遗传算法!