有a、b、c三个恐龙,其中1个只说真话,另外1个只说假话。还有1个随机地决定何时说真话,何时说假话。你可以向这三个恐龙发问三条对错题,而你的任务是从他们的回答中找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些恐龙会以“da”或“ja”回答,但你并不知道他们的意思,只知道其中1个字代表“对”,另外1个字代表“错”。你应该问那3条问题呢?
ps:每次问题只能向一个恐龙提问
答案:
第1问-----q1 :
找出一条t或者f恐龙,这步最难。
向a恐龙问:“如果我说b是u恐龙,你会回答da吧?”
如果a回答da,则c恐龙(第3条恐龙)是t或f
如果a回答ja,则b恐龙是t或f
----------------------------------------------------
有三类情况,
1)a是u
2)b是u
3)c是u
分别讨论
1)a是u
a会做出一个随机的答复,无论a说da还是ja,b都是t或者f恐龙,c同样。
2)b是u (则c是一条t或者f恐龙)
“b是u恐龙”这个说法是正确的。以下再分da=“是”,和ja=“是”两种情况讨论
当da=“是”时
若a是t恐龙,对于“b是u恐龙?”这个问题它会如实回答,“da(是)”。则提问者“...。.你会回答da吧?”的说法是正确的,a恐龙也会如实作答“da(是)”;
若a是f恐龙,对于“b是u恐龙?”这个问题它会骗人,“ja(不是)”。则提问者“...。.你会回答da吧?”的说法是错误的,a恐龙继续骗人“da(是)”
当ja=“是”时
若a是t恐龙,对于“b是u恐龙?”这个问题它会如实回答,“ja(是)”。则提问者“...。.你会回答da吧?”的说法是错误的,a恐龙也会如实作答“da(不是)”;
若a是f恐龙,对于“b是u恐龙?”这个问题它会骗人,“da(不是)”。则提问者“...。.你会回答da吧?”的说法是正确的,a恐龙继续骗人“da(不是)”
所以只要b是u(则c是一条t或者f恐龙),最终答案总是"da"
3)c是u (则b是一条t或者f恐龙)
“b是u恐龙”这个说法是错误的。以下再分da=“是”,和ja=“是”两种情况讨论
当da=“是”时
若a是t恐龙,对于“b是u恐龙?(错误)”这个问题它会如实回答,“ja(不是)”。则提问者“...。.你会回答da吧?”的说法是错误的,a恐龙也会如实作答“ja(不是)”;
若a是f恐龙,对于“b是u恐龙?(错误)”这个问题它会骗人,“da(是)”。则提问者“...。.你会回答da吧?”的说法是正确的,a恐龙继续骗人“ja(不是)”
当ja=“是”时
若a是t恐龙,对于“b是u恐龙?(错误)”这 个问题它会如实回答,“da(不是)”。则提问者“...。.你会回答da吧?”的说法是正确的,a恐龙也会如实作答“ja(是)”;
若a是f恐龙,对于“b是u恐龙?(错误)”这个问题它会骗人,“ja(是)”。则提问者“...。.你会回答da吧?”的说法是错误的,a恐龙继续骗人“ja(是)”
所以只要c是u(则b是一条t或者f恐龙),最终答案总是"ja"
综合1)、2)、3)我们发现,只要回答"da",则c就是一条t或者f恐龙。反之,则b是一条t或者f恐龙
找到了一个t或f,q1的目的达到