三人猜帽子
三个人各戴一顶帽子,颜色为红、黄、蓝之一,三顶可重复(如黄黄蓝、红黄蓝、红红红……)。每人只能看见另外两人的帽子,看不见自己的。
三人同时报出自己帽子的颜色,事前不能交流,但可以事先商量策略。
问:能否设计策略,使得无论实际戴法如何,至少有一人一定猜对?
能。 下面先给三人版,再推广到 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 的余数,通过公式「分配」给对应编号的人去猜。这是组合与模算术里的经典构造。