51Testing软件测试论坛

标题: 真假话精灵 [打印本页]

作者: 默默巫    时间: 2009-8-20 15:17
标题: 真假话精灵
有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题(注:每个问题只问一个精灵, 可以三个问题都问同一个精灵),而你的任务是从他们的答案找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。你应该问那三条问题呢?
这道逻辑题是专家Raymond Smullyan出的,自封为“世界最难逻辑题”.
作者: 美元测试    时间: 2009-8-20 18:51
费脑筋呢~
作者: helina168    时间: 2009-8-20 20:48
答不上来......
作者: magicalrose    时间: 2009-8-21 10:46
写答案  想了一晚上了.........................想知道结果!
别告诉我是个死循环
作者: haol123    时间: 2009-8-21 17:45
先问精灵甲:你说的是真话吗?
得到回答可能是:Da....或 Ja.....
如果精灵甲回答是:Da.

再问精灵精灵乙:甲说的是真话吗?
得到回答可能是:Da....或 Ja.....
如果精灵甲回答是:Ja.

再问精灵精灵丙:乙说的是真话吗?
得到回答可能是:Da....或 Ja.....
如果精灵甲回答是:Ja.

我说:你们赢了。。-0-
作者: 缘起梦灭    时间: 2009-8-22 16:25
1.问甲:你说乙会说真话吗?
2.问乙:你说丙会说真话吗?
3.问丙:你说甲会说真话吗?
假定甲只会说真话,Da是是的意思。
1.问题1,甲回答Da,说明乙是又说真话,又说假话,丙是只说假话。接着问题2,然后问丙:你说刚才乙说的是真话吗?如果乙的回答是Da,那丙的回答肯定是Da。如果乙的回答是La,那丙的回答肯定是La。答案组合为Da Da Da和Da La La
2.问题1,甲回答La,说明乙只会说假话,丙是又说真话又说假话。接着问题3,然后问乙:你说刚才丙说的是真话吗?如果丙的回答是Da,那么乙的回答肯定是La。如果丙的回答是La,那么乙的回答肯定是Da。答案组合为La La Da和La Da La
以此类推:
共有8种答案组合,根据组合来判定。
作者: 本来就很乖    时间: 2009-8-25 15:54
不用理会''Da”或“Ja”,这个有点误导人吧。
只是如何巧妙地问哪三个问题?
比如问:甲两个问题,乙是真话精灵?
                    乙是假话精灵?
如果两个答案一样的话,甲可能是说假话精灵或者随机说真话说假话精灵。
如果两个答案不一样的话,甲可能是真话精灵或者是随即说真话说假话精灵。
...等,是不是按照这样的思维去解啊?
作者: magicalrose    时间: 2009-8-27 09:52
LS  你举例的逻辑就是有错的....
作者: 41832990    时间: 2009-8-27 14:14
- - 囧 大汗淋漓




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2