跳转到主要内容

三人猜帽子

三个人各戴一顶帽子,颜色为红、黄、蓝之一,三顶可重复(如黄黄蓝、红黄蓝、红红红……)。每人只能看见另外两人的帽子,看不见自己的。

三人同时报出自己帽子的颜色,事前不能交流,但可以事先商量策略。

问:能否设计策略,使得无论实际戴法如何,至少有一人一定猜对?

能。 下面先给三人版,再推广到 n 人。


编号约定

把红、黄、蓝分别编号为 0、1、2。三人编号为 0 号、1 号、2 号(按事先约定好的顺序站定)。

记第 i 号人头上帽子的编号为 hᵢ(i = 0, 1, 2)。


策略(三人版)

i 号人报出的猜测为:

gᵢ = ( i − 他人帽子编号之和 ) mod 3

即:

  • 0 号猜:(0 − h₁ − h₂) mod 3
  • 1 号猜:(1 − h₀ − h₂) mod 3
  • 2 号猜:(2 − h₀ − h₁) mod 3

(减法和 mod 3 按整数运算,结果取 0、1、2 之一。)


为何一定至少一人对?

三顶帽子编号之和 S = h₀ + h₁ + h₂。

S ≡ 0 (mod 3):0 号的猜测 g₀ = (−h₁−h₂) ≡ h₀,0 号必对

S ≡ 1 (mod 3):1 号的猜测 g₁ = (1−h₀−h₂) ≡ h₁,1 号必对

S ≡ 2 (mod 3):2 号的猜测 g₂ = (2−h₀−h₁) ≡ h₂,2 号必对

三种余数必居其一,故无论红黄蓝如何搭配,总恰好(也至少)有一人猜对


推广:n 人、n 种颜色

若有 n 个人,帽子颜色为 0, 1, …, n−1 各一种编号(共 n 种颜色,可重复),第 i 号(i = 0, …, n−1)只能看见其余 n−1 人的帽子,则策略为:

gᵢ = ( i − ∑_{j≠i} hⱼ ) mod n

同理:所有猜测与真实编号之和的关系保证,余数 r = S mod n 的那一位 i = r 的人一定猜对。因此对任意 n,都能保证至少一人猜对(实际上在颜色编号 mod n 意义下恰好一人猜对)。


小结

关键不是「碰运气」,而是把三顶(或 n 顶)帽子的编号之和 mod n 的余数,通过公式「分配」给对应编号的人去猜。这是组合与模算术里的经典构造。