📜  拼图 |四副眼镜和眼罩

📅  最后修改于: 2022-05-13 01:57:25.361000             🧑  作者: Mango

拼图 |四副眼镜和眼罩

谜题四个玻璃杯放在一个可以绕中心旋转的方形盘子的角上。眼镜是直立(向上)还是倒置(向下),数量未知。
一个人被蒙上眼睛并坐在旋转板旁边。蒙眼的人必须重新排列眼镜,以便它们要么全部向上要么全部向下,这将通过铃声发出信号。
眼镜可以按照给定的规则轮流重新排列:

  • 在一次转动中,可以检查任意两个眼镜,并且该人可以执行以下三个操作:
    • 人可以反转任一玻璃的状态(竖直或倒置)。
    • 该人可以反转两个眼镜的状态(竖直或倒置)。
    • 该人可以让眼镜的状态(直立或倒置)保持不变,即没有变化。
  • 每转一圈后,方板会随机旋转一个角度。

通过设计一种算法来帮助蒙住眼睛的人,确保所有眼镜在有限的圈数内处于相同的位置(向上或向下)。该算法不能依赖于运气,即它应该是非随机的。

解决方案
按照以下算法,铃声最多会响五圈。让这成为最初的安排。

  1. 转 1:选择一副对角的眼镜,将两个眼镜都向上转动。
  2. 回合2:选择一副相邻的眼镜,由于上一步,至少有一个玻璃会向上。如果另一个倒下,那么也把那个玻璃杯调高。如果铃声没有响起,那么现在有三杯高一杯。
  3. 回合3:选择一副斜对角的眼镜。如果一个是下来,然后把它调高,铃就会响起。如果两个眼镜都向上,则将一个向下。现在有两个玻璃处于向下位置,它们必须相邻。
  4. 第 4 步:选择一副相邻的眼镜并将两个眼镜反转。如果两个玻璃杯都在同一位置,那么铃会响起,否则,现在有两个玻璃杯在下,它们必须对角相对。
  5. 第五步:选择一副斜对着的眼镜,把两个眼镜都倒过来。现在,所有的玻璃杯都在相同的位置,无论是向上还是向下,铃声都会响起。

参考:
https://en.wikipedia.org/wiki/Four_glasses_puzzle