- 主题:囚徒猜钥匙问题
在您的基础上拓展一下,如果采取同或运算方式是不是也可以呀
【 在 GGGGDDDDK 的大作中提到: 】
: 这个其实简单呀
: 格数若为2的幂,所有格编号为0到2^k-1,
: 记所有正面硬币所在格的编号的逻辑异或为a,钥匙所在格的编号为b
: ...................
--
FROM 211.99.13.*
我据一个反例:
第一个和第二个格子为正面,其他均为反面,那么这个整数应该是3
钥匙放在第15个格子里,也就是要翻两个硬币才能实现余数为15.
而且这个方法第八个格子后面的硬币都不起作业,因为第八个格子后面的正反都是64的倍数了,会被64取模消除掉。
【 在 flyacat 的大作中提到: 】
: 没搜答案,个人想了下,应该有必胜策略
: 首先,第二个囚徒,只需要一个数字就能知道哪个格子,也就是说,他需要从棋盘摆放信息上获取一个0~63的数字,然后从约定的位置(比如左上角)开始数就行了;
: 棋盘的硬币摆放,可认为有8x8个二进制数,正面为1,反面为0,能够构成一个超大的整数,这个整数取模(取模:除以某个数,然后取余数)64,能得到这个0~63的数字;
: ...................
--
FROM 211.99.13.*
没理解
a or b = c
逆过来不可以推出
a or c = b吗?
【 在 GGGGDDDDK 的大作中提到: 】
: 普通的或运算没有那种可逆性
:
--
FROM 211.99.13.*
没理解您的答复,您方便举一个格子和钥匙布局,用或运算错误的反例吗
【 在 GGGGDDDDK 的大作中提到: 】
: 那相当于集合的并集
:
--
FROM 211.99.13.*
不对呀,0,1,2,3用二进制是00,01,10,11,取同或结果是11(十进制的3)
比如取掉十进制的0,剩余数用二进制是01,10,11,取同或的结构是00(十进制的0)呀
【 在 GGGGDDDDK 的大作中提到: 】
: 例如如果看正面朝上的取或
: 一共4个格子
: 0,1,2,3的或是3
: ...................
--
FROM 211.99.13.*
我理解的同或是两个相同为1,两个不同为0,异或是正好相反。
我拿不准还特意找了一下网上的资料:
https://www.cnblogs.com/kissazi2/archive/2012/11/02/2750924.html
【 在 GGGGDDDDK 的大作中提到: 】
: 可能你我理解的同或不同?
: 哦你理解的同或是 奇数个数 和异或相同 偶数个数 和异或恰好取反?
: 那没区别了
: ...................
--
FROM 211.99.13.*