红蓝排队
最近看到一个有趣的小逻辑谜题,就是红蓝站队,规则如下:
规则
假设有10个人,每个人都带着红色或者蓝色的头盔,红蓝颜色不一定是平分的,每个人都可以看到别人的头盔颜色但是看不见自己的颜色,成员间不能交流,所以也不可能从别人那里知道自己的颜色,现在这十个人需要排队,有什么策略可以保证他们能排成一排并保证红蓝颜色不能穿插吗?
逻辑推演
对于一号玩家来说不需要管自己的颜色,因为一个颜色不存在乱序的情况
对于二号玩家,也不需要管自己的颜色 :
- 如果二号玩家和一号玩家颜色一样,不会出现穿插的情况;
- 即使颜色不一样,因为只有两个颜色,所以也不会出现穿插的颜色;
但是对于三号玩家就开始有困难了,因为三号虽然可以看到一号和二号的颜色,但是三号并不知道自己的颜色,他就不确定自己是站在谁的旁边
如果三号是红色,但是却选择站在一号的左边,那么就是 红蓝红 出现了颜色穿插,因此游戏失败。同样三号是蓝色但是排在了二号的右边,出现 蓝红蓝 也是不正确的。
解法
其实我们这里出现了一个思维定势误区,以为排队只能在两边加人,但实际上规则并没有规定不能从中间插队。
所以游戏的正确解法就是 插队。
还是以三号玩家为例,因为不知道自己的颜色,所以他插入到了一二号的中间,准确来说插入到红蓝颜色中间,那最终的情况就会变成 蓝红红 或者 蓝蓝红,所以还是维持着正确的排序,不存在穿插的情况。
同理第四名也是按照一样的策略,只插入到红蓝中间,仍然能保证颜色的排序正确。
往后每个玩家按照这个策略插队,最终就能完成游戏