第51章三神问题
【接下来的内容有点绕,不感兴趣的家人可以跳过,我会用*号分割】
【不开玩笑,我事先准备的时候,对着答案捋了很久才捋清,第二天提笔开始写,脑子又乱了,又得从头捋一遍。】
想要解开三神问题,首先需要化繁为简,从基础的问题出发。
去掉任性神,再减掉条件去掉听不懂“是否”。
于是得到一个相对简单的二神问题:
一个神说谎话,一个神说真话,请问如何区分真伪神(用尽可能少的问题)。
此谜题的解决办法是问题套问题。
即不直接问是否为真神,而是外层再套一层问题:
如果我问你“他(另一个神)是否为真神”,你会回答是吗?
如果恰好询问的是真神,照常获得答案:“他不是真神”。
而如果问的是伪神,伪神因为需要说谎,对“他是否为真神”的回答为否,然后对外层的嵌套问题“如果我问你……”的回答,伪神需要再次说谎,反转答案。
最终得到答案,“他是真神”。
结果依然正确。
这种问法的关键,就是双层嵌套问法。
伪神的回答经过双重否定,最终答案会指向正确结果。
通过这种思路,解决了简化后的二神问题。
但对于三神问题,解迷才刚刚开始。
乍一看,“是”和“否”都听不懂,要如何提问?
询问问题本身似乎也失去意义。
但有了简化版的二神谜题解题思路,那就有了切入方向。
同样对其进行嵌套问题,只需把x或y加进提问中。
但由于过于复杂,先对所提的问题先进行简化。
对其中之一提问:如果我问你“1+1是否等于2”,你会回答x吗?
假如x的语义为“是”,真神对此的回答为x,伪神对此的回答为x。
假如x的语义为“否”,真神对此的回答为x,伪神对此的回答为x。
那如果所提的问题改为:如果我问你“1+1是否等于0”,你会回答x吗?
假如x的语义为“是”,真神对此的回答为y,伪神对此的回答为y。
假如x的语义为“否”,真神对此的回答为y,伪神对此的回答为y。
表面上看,无论询问什么问题,真伪神回答一样,完全无法区分。
但这个看似无用的结论本身,其中便包关键线索。
即:如果所提的问题为真,则二神的回答一致,皆为提问时使用的发音“x”,
如果所提的问题为假,则也都会回答提问时没有使用的发音“y”。
此时无需再关注x和y分别代表什么意思,而只需关心:神的回答和提问时所使用的发音“x”是否相同。
发音相同,代表提问问题为真,不相同,则代表提问为假。
推导至此,就已经排除听不懂x和y带来的干扰。
此时,可以正式开启对三神的提问。
首先,对1号神提问:如果我问你“2号是任性神吗”,你会回答x吗?
1号神可能回答x,也可能回答y。
先看回答x的情况:
如果1号是任性神,他的回答是随机的,没有意义。但是,此时2、3号神一定不是任性神。
如果1号不是任性神,无论他是真神还是伪神,由于此时回答为x,与提问相同,所以答案为真。得出结论:2号是任性神,那么3号神一定不是任性神。
两种情况都包含3号不是任性神,所以这条推导成立。
一旦确定3号神不是任性神,那就可以对3号神继续提问:
如果我问你“你是真神吗”,你会回答x吗?
此时3号如果回答x,与提问发音相同,则3号是真神,3号回答y,则3号是伪神。
无论是真神还是伪神,3号的身份都可以完全确认。
最后一个提问,继续以相似的方式问3号:如果我问你“1号是任性神吗”,你会回答x吗?
最终都可以根据3号的回答,确定1号神的身份,而剩下的2号神就可以对号入座。
回到最初,对1号神提问,若1号神回答y:
如果1号是任性神,他的回答没有意义。但是,此时2、3号神一定不是任性神。