第1个回答 2009-11-07
最难的逻辑推理
有两个箱子,其中一个里面有一个金子。但是有三个精灵守护着。这三个精灵一个说真话,一个说假话。还有一个随机说真话和假话。现在请你向他们问两个问题找出金子在哪个箱子里面。注意,一个问提只能问一个精灵,不能三个同时问,也不能两个同时问。但是两个问题可以问一个精灵。精灵他们知道金子在哪个箱子
答案:设ABC三个精灵,A说真话B说假话C半真半假(时而犯病)
1,2两只箱子,1有金币,2没有
首先说明这个逻辑:问A:B会说真箱子是哪个?答:2(所以可知真箱子是1)
问B:A会说真箱子是哪个?答:2(所以可知真箱子是1)
问题在于怎么区分谁是ABC呢?(1,2箱子不必区分哪个是否有金币,只须标记)
问A:C会说哪个箱子有金币?答:不知道(他不知道C会不会犯病,所以答案是非常诚实的不知道)
B会说哪个箱子有金币?答:2
问B:C会说哪个箱子有金币?答:C说两个都没有或两个都有(原因显而易见B 必须说假话,但是他不知道C会说什么,他说1或2就有可能说真话,所以必须说C说两个都没有或两个都有,但是我们已知其中一只箱子有金子,OK,突破口入手)
:A会说哪个箱子有金币?答:2
问C:A会说哪个箱子有金币?答:1或2
B会说那个箱子有金币?答:1或2(完全看C什么时候犯病)
问题在于:不知道谁是ABC(把问题这样来想)
由以上结论得知:
第一情况
对其中任意精灵问:另一个精灵会说哪个有金币得到答案为不知道或两个都没有或两个都有时,可以确定他们是A或者C,此时只要对同一精灵问第三精灵会说哪个箱子有金币得到的答案必定是2,由此可知真箱子所在
第二情况
对其中任意精灵问:另一个精灵会说哪个有金币得到答案为1时可知该精灵为C
此时,只要对A问B或者对B问A:A(B)会说金币在哪个箱子必定会得到答案为2,此时可知真箱子是哪个
对其中任意精灵问:另一个精灵会说哪个有金币得到答案为2时
又分以下情况
当问到C-A时,C恰好说的是假话答案是2,可知真箱子(当C说真话参考第二情况)
当问到C-B时,C恰好说的是真话答案是2,可知真箱子(当C说假话参考第二情况)
当问到A-B,B-A时,答案必须都是2,可知真箱子
现在只剩下最后一个问题:你不知道1,2区别在哪,现在开始区分:
设问A-B,得到回答2,此时再问A-C,得解
问B-A,得到回答2,此时再问B-C得解
问C-A得到回答2,此时再问C-B,得到的答案也是2,得解
麻烦在于
问C-A得到回答2,再问C-b得到回答1,此时得知你所询问精灵为C
真真:1 假真:2 真假:2 假假:1
所以必须这样问来确定身份:当得到回答为数字时(其中一个箱子)设 X Y Z
问X-Y,可以确定Y不是C之后,问Y-Z 可知Z是否是C,若Z不是C则去Y-Z答案
若Y是C则问X-Z取其答案
得解