史上最难而又最“简单”的一道题
有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话,还有一个随机地决定何时说真话,何时说假话。问她们问题,这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思...
有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话,还有一个随机地决定何时说真话,何时说假话。
问她们问题,这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。
请问:你怎样问三个问题,从她们的答案中找出谁说真话,谁说假话,谁是随机答话? 展开
问她们问题,这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。
请问:你怎样问三个问题,从她们的答案中找出谁说真话,谁说假话,谁是随机答话? 展开
1个回答
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
证毕~
设三个精灵分别为 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
证毕~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询