一个问题都不用问的猜傻子方法

来源: 2008-06-20 11:11:12 [博客] [旧帖] [给我悄悄话] 本文已被阅读:

对傻子A我们可以问一个答案现在还没有确定的问题,例如:“我听到你对这个问题的回答后是摇头还是点头?”如果回答摇头我就摇头,回答点头我就点头。而根据条件,大傻子总是撒谎的,因此A肯定不是大傻子。但是这个结论在问问题之前就可以得出了,因次我不必问就知道了A不是大傻子。根据同样的推理,B也不是大傻子。(就此打住,不要再继续推了。)所以C一定是大傻子。但是我们知道三傻子对第一个问题也肯定是撒谎的,把同样的道理应用到A和三傻子,就得到A一定也不是三傻子。因此我们一个问题都不用问就得出A是二傻子,B是三傻子,C是大傻子。

这是开玩笑了。但实际上真有这样的情况需要考虑:有些问题的答案不是是或不是,而是不一定。对这种情况一般的解决办法是要求问的问题一定要对每一个回答问题的人都有确定的是或不是的答案,否则三个人都会拒绝回答。例如你问:“你回答问题撒不撒谎?”三个傻子都不会回答这个问题,因为这个问题对二傻子没有确定答案。在这样的假定下至少要问三个问题才能判断出傻子们的身份。

但是我们还有另外一个解决办法。我们给每一个问题三个可能的答案:这个问题永远是对的,这个问题永远是错的,这个问题的答案不确定。大傻子回答问题时会在两个不正确答案中随机选一个,二傻子会在三个答案中随机选一个。这个时候还能不能猜出傻子来?(我不知道。)如果能,至少要问几个问题?(我也不知道。)