首页 > 代码库 > 黑帽子白帽子

黑帽子白帽子

一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打拍手一次。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有啪啪拍手的声音响起。问有多少人戴着黑帽子?


分析

决定响的是看到最少黑帽子数的人。


0顶,不成立;

1顶,1次响; 看到为0 的会先觉悟。

2顶,2次响; A顶黑看到B顶一黑,会赌B看到0顶。第一次不响,第二次证明自己看错,自己顶一顶黑,2次响   

3顶,3次响: C顶黑看到AB两黑,会赌AB各看一顶黑,认为AB在第二次会响,否则自己顶黑。3次会响。 

4顶,4次响: D顶黑看到ABC三黑,会赌ABC各一顶黑,若正确,则会在第3次响,否则自己响在第四次。

5顶,5次响;   E顶黑看到ABCD四黑,会赌四顶的话会在4次响,否则第5次都响。

。。。。。。。

果然依照这个逻辑,可以成立。有k顶黑帽,k次响。推出3顶。

多么呆板的一群人呀。。。。