跳转到内容

谜题/逻辑谜题/10顶帽子/解答

来自Wikibooks,开放世界中的开放书籍

谜题 | 逻辑谜题 | 10顶帽子 | 解答


第10个学生如果看到偶数个白帽子则说“白色”,如果看到奇数个白帽子则说“红色”(她将是唯一一个可能出错的人)。第9个学生现在看到她前面的8顶帽子。假设其中X顶是白色的。现在有四种可能性

  • 第10个学生说“白色”且X为偶数:她戴着红帽子
  • 第10个学生说“白色”且X为奇数:她戴着白帽子
  • 第10个学生说“红色”且X为偶数:她戴着白帽子
  • 第10个学生说“红色”且X为奇数:她戴着红帽子

第9个学生可以算出哪种情况发生,并说出她帽子正确的颜色。从那时起,学生们必须从总数中减去猜对的帽子,并再次应用奇偶推理(使用第10个学生所说的话,并计算他们前面白帽子的数量)。

通过转换,此解法有一个细微的变体:学生们不是戴红白帽子,而是戴着标有0或1的帽子。令x1,...,x10为学生帽子上的数字。令a1,...,a10为学生的答案。学生们按与第一个解法相同的降序回答。答案被递归定义为

  • a10 = (x1+...+x9) mod 2
  • a9 = (x1+...+x8+a10) mod 2
  • a8 = (x1+...+x7+a9+a10) mod 2
  • ...

这些等式可以简洁地描述如下:每个学生将他们看到的数字和他们听到的数字加起来。如果总和为奇数,学生说一,否则说零。为了证明ai === xi mod 2,令si = x1+...+xi并使用归纳法。

基本情况:a9 === x9 mod 2

证明

  • s8 + x9 === a10 mod 2
  • x9 === a10 + s8 mod 2
  • x9 === a9 mod 2

归纳步骤:假设ai === xi mod 2对于i = n+1,..., 9成立,那么

  • an === s(n-1) + a(n+1) +... + a10 mod 2(根据定义)
  • an === s(n-1) + (s9 - sn) + a10 mod 2(根据归纳假设)
  • an === xn + s9 + a10 mod 2
  • an === xn mod 2(因为s9 + a10是偶数)

因此ai === xi mod 2对于i = n, n+1,..., 9成立

因此ai === xi mod 2对于i = 1,...,9成立,并且最多只有一个答案(a10)是错误的。

第10个学生将看到9顶帽子,只有1或2种颜色。其中一种颜色必须显示奇数个。如果第10个学生只说出哪种颜色显示奇数个,那么最初的设置可能会更容易让学生理解。其余的学生将通过与解答1中相同的逻辑推理得出正确答案。

华夏公益教科书