- 主题:囚徒猜钥匙问题
没搜答案,个人想了下,应该有必胜策略
首先,第二个囚徒,只需要一个数字就能知道哪个格子,也就是说,他需要从棋盘摆放信息上获取一个0~63的数字,然后从约定的位置(比如左上角)开始数就行了;
棋盘的硬币摆放,可认为有8x8个二进制数,正面为1,反面为0,能够构成一个超大的整数,这个整数取模(取模:除以某个数,然后取余数)64,能得到这个0~63的数字;
第一个囚徒,只需要计算下他翻转哪个位置的硬币,会保证这个二进制数取模64后,正好等于钥匙位置即可,这个是可以做到的;
如果监狱长默认摆放的计算结果正好是钥匙位置,而第一个囚徒必须翻转一枚硬币,也没关系,翻转对应64位倍数的位就可以了,不影响计算结果。
如果有坏掉格子,那么就没有必胜策略了
【 在 littlestone9 的大作中提到: 】
: 有2个囚徒,监狱长让他们做个游戏,获胜了就可以直接释放他们
: 游戏规则是这样的:
: 开始时第一个囚徒和监狱长在一个房间,第二个囚徒在另一个房间,监狱长在一个8x8共64格棋盘的每个格子上放一枚硬币,硬币有正反2面,每个格子正反面怎么摆监狱长自己决定,然后监狱长将一把小钥匙放在其中一个格子里(假设棋盘的格子是可以打开在里面放东西的),第一个囚徒知道钥匙在哪个格里,然后第一个囚徒选择将一个格子上的硬币翻面(必须选一个格子翻面,不能啥也不干)。
: ...................
--
FROM 123.58.117.*
有两个格子可以必胜,超过两个格子就不行
【 在 littlestone9 () 的大作中提到: 】
: 有2个囚徒,监狱长让他们做个游戏,获胜了就可以直接释放他们
:
: 游戏规则是这样的:
: 开始时第一个囚徒和监狱长在一个房间,第二个囚徒在另一个房间,监狱长在一个8x8共64格棋盘的每个格子上放一枚硬币,硬币有正反2面,每个格子正反面怎么摆监狱长自己决定,然后监狱长将一把小钥匙放在其中一个格子里(假设棋盘的格子是可以打开在里面放东西的),第一个囚徒知道钥匙在哪个格里,然后第一个囚徒选择将一个格子上的硬币翻面(必须选一个格子翻面,不能啥也不干)。
--
FROM 123.203.170.*
拿2x2棋盘来说,格子数为4,所有硬币的排列为2的4次方一共16种,其实就是想办法把16种状态分成4组
4组状态每组对应一个格子表示钥匙在该格子中。
但要保证16种状态每个状态都能通过翻一次硬币去到任何一组状态中去,比如初始状态是[1,1,1,1],翻一次硬币有4种选择,可变为[0,1,1,1],[1,0,1,1],[1,1,0,1]和[1,1,1,0]
也就是这4种状态分别在4个不同的组中,看能否按照以上要求把全部状态都分好组
【 在 CORDIC 的大作中提到: 】
: 个人感觉囚犯没戏吧?
: 一个格子能给第二个囚犯提供的信息太有限了,最简单就是能排除一半。其他更好的编码方式?
: 监狱长的策略是尽量随机一些,没有任何pattern可以让囚犯利用?
: ...................
--
FROM 117.107.131.*
哦你说的对!
【 在 GGGGDDDDK () 的大作中提到: 】
: 这个其实简单呀
:
: 格数若为2的幂,所有格编号为0到2^k-1,
: 记所有正面硬币所在格的编号的逻辑异或为a,钥匙所在格的编号为b
--
FROM 123.203.170.*
不是2次幂的情况,通过padding是不是也是可以解决的
【 在 GGGGDDDDK 的大作中提到: 】
: 这个其实简单呀
: 格数若为2的幂,所有格编号为0到2^k-1,
: 记所有正面硬币所在格的编号的逻辑异或为a,钥匙所在格的编号为b
: ...................
--
FROM 159.226.171.*
不行吧,棋盘可以旋转,两个囚徒没法统一编号啊。从不同角度看棋盘,左上角是哪个都不一样。所以需要棋盘坏一个格子。
【 在 GGGGDDDDK 的大作中提到: 】
: 这个其实简单呀
: 格数若为2的幂,所有格编号为0到2^k-1,
: 记所有正面硬币所在格的编号的逻辑异或为a,钥匙所在格的编号为b
: ...................
--
FROM 47.18.84.*
棋盘放在一个房间里,囚徒事先可以商议策略,就能定出编码方向啊。
典狱官要是能转棋盘,这。。。
【 在 careerA () 的大作中提到: 】
: 不行吧,棋盘可以旋转,两个囚徒没法统一编号啊。从不同角度看棋盘,左上角是哪个都不一样。所以需要棋盘坏一个格子。
:
: 【 在 GGGGDDDDK 的大作中提到: 】
--
FROM 180.79.240.*
那需要两个囚徒事先看过棋盘吧。
【 在 maruko 的大作中提到: 】
: 棋盘放在一个房间里,囚徒事先可以商议策略,就能定出编码方向啊。
: 典狱官要是能转棋盘,这。。。
--
FROM 47.18.84.*
这没问题吧。事先能商议策略,看看棋盘没啥啊。就算不让看,最优的策略里也可以包含如何定位各种固定棋盘的编码方式
【 在 careerA () 的大作中提到: 】
: 那需要两个囚徒事先看过棋盘吧。
:
: 【 在 maruko 的大作中提到: 】
--
FROM 124.65.9.*
在您的基础上拓展一下,如果采取同或运算方式是不是也可以呀
【 在 GGGGDDDDK 的大作中提到: 】
: 这个其实简单呀
: 格数若为2的幂,所有格编号为0到2^k-1,
: 记所有正面硬币所在格的编号的逻辑异或为a,钥匙所在格的编号为b
: ...................
--
FROM 211.99.13.*