先普及一下基础知识:
假定 两个对象 A和B,A是真 ,B是假
A或B (或两侧的对象只要有一个是真,表达式的结果就是真)就是真
A与B 就是假 (与两侧的对象必须同时为真或者同时为假 表达式的值才为真)
非A 是假
非B是真
那么~知道了基础知识,我们再回到题目,两个士兵A和B 一个讲真话一个讲假话~其实也就是一个真,一个假(这里无需深究哪个是真哪个是假),挑战书和和平书,分别取名为C(假)和D(真),我们现在把题目转换一下思维,其实问题的根本不是选择题~而是判断题。判断和平书在哪里?
好了~关键就在公孙策问的问题,相当于一个问题问了两个人,也就是A与B这个 表达式的结果是假,那么,如何让这个表达式与上一个结果才是真呢??对了~就是挑战书C(假),也就是说 ” (A与B)与C ”或者” (A与B)与(非D)”这个两个表达式的最终结果才是真,所以才会有这样一幕:
如果那个士兵回答是挑战书,也就是说,A与B与C ,那么判断成立,就是那个盒子
如果那个士兵回答是和平书,也就是说必须A与B与(非D) 这个表达式才是真,非D,也就是说不是那个盒子~于是选择另外一个士兵的手中的盒子。
这里的精髓是对应到两个士兵,战书和和平书,到或与非的算数表达式中去,只有结果是真 才是正确的。