那么,如何提三个问题判断A、B、C三个精灵哪个说真话。。。
难点:三个精灵回答问题时只会说Da或者Ja,并且不知道Da,Ja是表示肯定还是否定。
解:
第一个问题(1):你是真精灵吗?假设回答为R,那么对ABC有两种可能的回答组合,如下:
真 假 不确定若回答为R,R,R则转到1a),否则转到1b)
R R R
R R ^R
对1a),此时可以肯定R表示肯定,继续提第二个问题(2):R表示肯定吗?
对ABC三个精灵必然得到如下的回答:
真 假 不确定若为R,^R,R可知,^R为假精灵。继续对假精灵提问(假设假精灵已经找出为J2,另外两个精灵为J1,J3),
R ^R R
R ^R ^R
3)J1是真精灵吗?若回答为R则J1是不确定精灵,J3是真精灵;若回答为^R则J1是真精灵,J3是不确定精灵
若为R,^R,^R,则:R是真精灵,继续对真精灵提问(假设真精灵已经找出为J1,另外两个精灵为J2,J3),
3')J2是假精灵吗?若回答为R,则:J2是假精灵,J3是不确定精灵;若回答为^R则J2是不确定精灵,J3是假精灵
对1b),显然^R是不确定精灵,继续提问(2):R表示肯定吗?
回答为R是真精灵,回答^R的为假精灵。