8、某个岛上有座宝藏,你看到大中小三个岛民,你知道大岛民知道宝藏在山上还是山下,但他有时说真话有时说假话,只有中岛民知道大岛民是在说真话还是说假话,但中岛民自己在前个人说真话的时候才说真话,前个人说假话的时候就说假话,这两个岛民用举左或右手的方式表示是否,但你不知道哪只手表示是,哪只手表示否,只有小岛民知道中岛民说的是真还是假,他用语言表达是否,他也知道左右手表达的意思。但他永远说真话或永远说假话,你也不知道他是这两种类型的哪一种,你能否用最少的问题问出宝藏在山上还是山下?(提示:如果你问小岛民宝藏在哪,他会反问你怎么才能知道宝藏在哪?等于白问一句。)
答案:为了方便,我们把大中小岛民分别记为ABC(其实都没用到C),第一个问题问A:宝藏在山上吗?第二个问题问B:A答对了吗?第三个问题问B:1 1=2对吗?
好,现在第一问我们不知道A回答的是“是”还是“否”,也不知道A回答的真还是假,只是知道A举的手是左手还是右手,那先不管他。看第二问,不管A回答的意思是“是”还是“否”,只要A的回答是对的,B在第二问的时候也答对,所以他应该回答“是”(如果他会汉语的话)。还是一样的,不管A回答的意思是“是”还是“否”,只要A的回答是错的,B在第二问的时候也答错,所以他还是应该回答“是”。
所以无论何种情况B举的那只手都是“是”的意思;第三问:现在知道左右手是什么意思了,那只要知道B刚才的回答是真还是假,就能确定A是真还是假了,因为他们两个的真假必定是一样的。所以随便找个题目来问就可以了,比如1 1=2是吗?
还有个方法:首先随便问一个人:你是不是说真话,那个人一定会举起代表“是”的那只手,因为如果他说的是真话,他会举起代表“是”的手。他说的是假话,他也会举起代表“是”的手,所以可以由此得出、那只手代表“是”;然后问中岛民:大岛民说宝藏是在山上吗?中岛民回答的一定是正确答案,也就是说,中岛民说在哪宝藏就在哪。