有一个聪明国王,他的监狱里有100个死刑犯。他把100人分配到100级台阶上站立,每人头上随机分配红,黄,或蓝帽子一顶。每个人能看见他以下的人所带帽子颜色,但看不见他自己或他以上的人的帽子颜色。然后让100人从最顶的人开始按顺序往下,每人高声喊“红帽子”,“黄帽子”,或“蓝帽子”。最后统计有多少人喊的帽子颜色正好是他所带帽子的颜色。如果至少有N人说对,100个人全部释放。问国王说的N是多少? (在100人分配台阶和帽子之前,他们可以任意讨论商量如何喊。)
对所有的情况,N都是99。QL已经得到正确思路。下面给出一般情况的细节。 www.ddhw.com 设有m种颜色的帽子。把0到m-1这m个数分配给这些颜色。第一个人根据他看到的数量(设为a0, a1, ...a(m-1))进行下列计算:(0*a0 + 1*a1 + ... + (m-1)*a(m-1)) mod m。他然后喊出这个结果代表的颜色。以后的每一个人都知道(看到或听到)98个正确颜色。他用这98个颜色进行相同的计算,然后与第一个数字相减,(有时减完要加m,)就得到他自己的颜色。 无穷种颜色时实际上更简单。把每一个自然数分配给一种颜色。(只能有可数种颜色,再多就没有这么多颜色名字可喊了。)同样计算,只是不必取模。 www.ddhw.com
|