[问题] 近乎不可能的西洋棋盘谜题

楼主: terrorlone (星君)   2025-03-17 11:16:08
这个问题一般的说法是出自 2020 年的一个 YouTube 影片,
也已经有几年的历史了,不过最近在脸书上又有一些相关的讨论,
爬了一下似乎没有人贴在这边过,就顺手贴一下。
题目:
狱长给两个囚犯出了一个谜题。
两个囚犯将会依序进入一个房间,
房间里面有一个西洋棋盘(注:其方向是确定的,例如可以想像棋盘旁边有写座标),
棋盘的 64 个格子每个底下都是一个小收纳空间,
其中恰有一个格子里面藏了出狱的钥匙,
而每一个格子上面都各放了一个硬币,每个硬币均可能是正面或反面。
第一个囚犯进入到房间之后,狱长会打开正确的格子让他看钥匙藏在哪一格里面。
接下来,他唯一能做的事情就是把棋盘上其中一个格子的硬币翻面
(且一定要翻一个),然后就必须离开房间、没有机会传递其它讯息。
接着第二个囚犯进入到房间之后,他必须根据棋盘上的硬币状态来判断出钥匙藏在哪里。
棋盘上的硬币初始状态会怎么摆、以及钥匙会藏在哪里,都是无法事先知道的。
两个囚犯之间的讯息传递,也仅限于第一个囚犯的翻面操作
(当然,第二个囚犯没有任何方法知道第一个囚犯翻的是哪一个,
他只能看到翻面之后的全体状态)。
不过两个囚犯事前都完整地知道游戏规则,他们可以尽情拟定策略。
难度(纯属个人见解):★★★★☆
========================================
这个题目取名叫“近乎不可能的西洋棋盘谜题”、
就是因为两个囚犯之间只能透过看似极少的操作、
来在庞大的解空间(64 * 2^64)里面传递讯息。
但因为不是完全不可能,这谜题确实是有解的。
这几年来在网络上解答这题的文章和影片一大堆,
但当然鼓励各位自己解一遍。
这题我从看到题目开始在每天晚上边想边入睡,想了大概十天左右全部想出来。
要验证各位的策略有效,一个简单的方法就是写程式来模拟整个过程,
如果编码函数(第一个囚犯)和解码函数(第二个囚犯)总是能正确合作,
那就对了~
一个不算提示的提示:不妨先考虑棋盘很小很小的情况,再试着推广到 64 格。
顺便一提:
这个谜题的可行策略当然不只一种,但可以证明,
所有的可行策略本质上都是等价的(只差在格子的排列与正反面的定义而已)。
作者: isnoneval (虚物之海)   2025-03-17 23:50:00
推,这题能自己想出来的都是强者
作者: CHOIP   2025-03-19 18:03:00
有趣!刚推导 n= 2 4 8 有简单策略 但还没想出64通解
楼主: terrorlone (星君)   2025-03-19 20:14:00
要进一步深刻思考那些比较小的解之所以可行的本质理由所在
作者: CHOIP   2025-03-20 09:04:00
找到2进位排列通解了 n不是2的次方数也能套用原理相同 解法不唯一…有空再分享我的版本及idea
楼主: terrorlone (星君)   2025-03-20 13:52:00
咦?可是这题当 n=3 的时候应该是无解的……
作者: CHOIP   2025-03-20 18:15:00
n=3可解 总共只有8种可能 必能定义区分出3类型举个简单的 只需观察前2个 00为a 01为b 10和11都代表c抱歉…上面不够精确010与011代表a 100与101代表b 其余为csorry 我想错了…3真的无解…你说的才对 n要为2次方
楼主: terrorlone (星君)   2025-03-20 20:37:00
基本上易看出:如果两个布局刚好只差两个硬币的正反,那它们必然要属于不同的“类”。由此很容易证明,n=3 的情况怎样都至少会跑出四个类,而无法分成三类,因此无解
作者: aragorn747 (亚拉冈)   2025-03-20 21:25:00
第一直觉把随便一格与有钥匙那格同面的硬币翻面到有钥匙那格,这样不就,这样不就解了?
作者: DreamYeh (天使)   2025-03-20 23:27:00
我一直是3x1x数学频道的铁粉 所以你知道的...跳过XD另外给楼上 翻面完当然要放回同一格...否则就不是问题了
楼主: terrorlone (星君)   2025-03-21 07:08:00
楼上没自己解一遍?话说这题我自己解完之后我粗略翻了几篇解答文章,都觉得“怎么写那么长”,我自己的解法解释起来用不到他们三分之一的篇幅就够了(而且当然程式验证过的)
作者: DreamYeh (天使)   2025-03-21 08:12:00
我尝试写看看好了

Links booklink

Contact Us: admin [ a t ] ucptt.com