有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题(注:每个问题只问一个精灵, 可以三个问题都问同一个精灵),而你的任务是从他们的答案找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。你应该问那三条问题呢?
这道逻辑题是专家Raymond Smullyan出的,自封为“世界最难逻辑题”,说除他之外无人解答出来
一个跟帖者的回答:
如果个精灵回答Da一个回答Ja或两个答Ja,一个答Da.则回答与另外两个不一样的那个精录一定是“随机决定何时说真话”的精灵。答案除以上两种可能外,还有一种可能是三个回答都是一样的,如果都是Da刚Da代表“是”,如果都是Ja则Ja代表“是”。如果回答不是相同的,则多的那个代表“是”。
通过第一步,如果直接找出了随机决定何时说真话的精灵,则只剩两个精灵。且此时,已经知道哪个代表是,哪个代表不是。然后问剩下的两个精灵,你们是随机决定何时说真话的精灵吗?说假话的精灵会回答“是”。则只要两个问题,就可以判断出结果了。
如果没能直接找出随机说真话的精灵,即三个精灵的回答都是一样的。则问第二个问题。
问题3二:你们是随机决定何时说真的话的精灵吗?
此时已经通过第一问知道哪个代表“是”。如果有两个回答“是”,则回答“不是”的那个必是说真话的精灵。如果两个回答不是,则回答“是”的那个必是说假话的。
问题三:要分两种情况。
1、如果找出的是说真话的精灵,则随便指着一个问他,这个是不是说假话的精灵,就可以判断出结果;
2、如果找出的是说假话的精灵,就随便指一个精灵,问他这个是不是说真话的精灵,然后作出相反的判断就可以得到结果。
找人问的!
第二个跟帖者的回答:
……先问一个精灵“你能带我去找说真话的精灵吗?”这时候肯定回答“是”或“否”(这时候根据他有没有带你去就能推断出是和否那两个字),如果他回答“否”就只有两种可能,1、它就是说真话的精灵,2、它是随机的那个精灵,此情况时再问,你是随机的那个精灵吗?如果他回答“是”就又有两种可能:1、它是说谎的精灵,2、它是随机的那个精灵,再问另一个精灵:“刚才跟我说话的精灵是随机的那个吗?”如果这个精灵说“否”,那么这个精灵就是那个说假话的,如果他说“是”那这个就是说真话的精灵……
回到问你是随机的那个精灵吗?如果他回答“否”,就还有两种可能,还是真话和随机两种可能,再问另一个精灵,你是随机的精灵吗?如果他说“是”那刚刚跟你说话的就是说真话的精灵- -……
一开始如果回答“是”,那么这个精灵就有可能是说谎精灵和随机精灵……然后再问他带你找的那个精灵,问“刚刚跟我说话的是真话精灵吗?”如果答案是“是”,那么面前这个就是假话精灵或随机精灵,最后剩下的就是真话精灵,如果回答:“否”那么就再问另一个精灵,同一个问题……………………orz……
这是很乱,但是我想结论肯定90%准确……下载本文