史上最难而又最“简单”的一道题

有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话,还有一个随机地决定何时说真话,何时说假话。问她们问题,这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思... 有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话,还有一个随机地决定何时说真话,何时说假话。
问她们问题,这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。
请问:你怎样问三个问题,从她们的答案中找出谁说真话,谁说假话,谁是随机答话?
展开
 我来答
匿名用户
2013-10-28
展开全部
  这题目有点意思~
  
  设三个精灵分别为 A、B、C,说真话、说假话、随机精灵分别为 T、F、X,“是”和“否”分别为 Y、N。
  
  应该分两步来走,第一步是找出谁是 X,第二步是辨别哪个是 T 哪个是 F。
  
  第一步:
  
  1. 问 A:
  
  “B 是否会说你是说真话的精灵?”
  
  会有三种结果:
  
  1.1. A 不回答。
  1.2. A 回答 Da。
  1.3. A 回答 Ja。
  
  为什么会有第一种呢?因为有可能 B 就是 X,这种情况下,不管 A 是 T 还是 F,它都不知道 B 会怎么回答,所以无法回答这个问题。如果是这种情况,那么第一步完成。否则就可以确定 B 不是 X。
  
  2. 问 C:
  
  “A 是否会说你是说真话的精灵?”
  
  同样会有三种结果:
  
  2.1. C 不回答。
  2.2. C 回答 Da。
  2.3. C 回答 Ja。
  
  同样,如果是第一种情况,说明 A 就是 X,否则说明 B 和 A 都不是 X,那么 C 才是 X。第一步完成。
  
  第二步:
  
  经过第一步,一定可以排除掉 X,我们就假设被排除掉的是 C,其它情况同理可证,然后问最后一个没问过的精灵以下问题
  
  “那个非随机精灵是否会用 ‘Da’ 来回答你是否是说真话的精灵?”
  
  假设我们问的,也就是最后一个精灵是 B,那么可能有以下情况:
  
  1:A:T B:F Da=Y Ja=N
  2:A:T B:F Da=N Ja=Y
  3:A:F B:T Da=Y Ja=N
  4:A:F B:T Da=N Ja=Y
  
  1:
  
  问题变成“那个非随机精灵是否会用 Y 来回答你是否是说真话的精灵?”
  
  因为 A 是 T,B 是 F,所以 A 必定以 N 来回答“B 是否是说真话的精灵”,而又因为 B 是 F ,所以 B 知道 A 会回答 N,于是 B 说谎,它会用 Y 来回答“A 是否会用 Y 来回答你是否是说真话的精灵”,即 B 回答 Da。
  
  2:
  
  问题变成“那个非随机精灵是否会用 N 来回答你是否是说真话的精灵?”
  
  因为 A 是 T,B 是 F,所以 A 必定以 N 来回答“B 是否是说真话的精灵”,而又因为 B 是 F ,所以 B 知道 A 会回答 N,于是 B 说谎,它会用 N 来回答“A 是否会用 N 来回答你是否是说真话的精灵”,即 B 回答 Da
  
  3:
  
  问题变成“那个非随机精灵是否会用 Y 来回答你是否是说真话的精灵?”
  
  因为 A 是 F,B 是 T,所以 A 必定以 N 来回答“B 是否是说真话的精灵”,而又因为 B 是 T ,所以 B 知道 A 会回答 N,于是 B 会用 N 来回答“A 是否会用 Y 来回答你是否是说真话的精灵”,即 B 回答 Ja。
  
  4:
  
  问题变成“那个非随机精灵是否会用 N 来回答你是否是说真话的精灵?”
  
  因为 A 是 F,B 是 T,所以 A 必定以 N 来回答“B 是否是说真话的精灵”,而又因为 B 是 T ,所以 B 知道 A 会回答 N,于是 B 会用 Y 来回答“A 是否会用 N 来回答你是否是说真话的精灵”,即 B 回答 Ja。
  
  综上所述,
  
  如果第二步的问题回答 Da, 则情况是:
  
  A:T B:F C:X
  
  如果第二步的问题回答 Ja, 则情况是:
  
  A:F B:T C:X
  
  证毕~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式