作者somedoubt (人独立燕双飞)
看板logic
标题Re: [转录] 微软中国研究院最新面试题
时间Sun Oct 21 13:49:37 2007
※ 引述《disrupt (*每天都是星期天*)》之铭言:
: --------------------------------------------
: 小明和小强都是张老师的学生,张老师的生日是M月N日,
: 2人都知道张老师的生日是下列10组中的一天,
: 张老师把M值告诉了小明,把N值告诉了小强,
: 张老师问他们知道他的生日是那一天吗?
: 3月4日 3月5日 3月8日
: 6月4日 6月7日
: 9月1日 9月5日
: 12月1日 12月2日 12月8日
: 小明说:如果我不知道的话,小强肯定也不知道
结论:这句话的意思是说不会有小明不知道而小强知道的情况。
这个条件句的逻辑形式为
□(~Ka→~Kb) (述词K表示知道, a表示小明, b表示小强)
或者你可以说小明所宣称的蕴含关系是某种必然蕴含关系,意即将原句翻译如下:
~Ka □→ ~Kb
既然第一个条件句中的蕴含关系是某种必然蕴含关系,这个条件句就不会是真值函
数式的条件句。这条件句的真值不是由前後件的真值所决定的。
"□(~Ka→~Kb)" is true iff in all case where Ka is false, Kb is fale either.
请注意,至今我们根本就还没讨论到"知道"是什麽意思,而是只要你掌握模态词的语意
你就知道要判定这句话的真假,你得考虑所有可能的情况。"不论"过去现在或未来,都
没有小强知道但小明不知道的"事态",原本的条件句才会为真。
而世界呈现何种事态时小明不知道但小强知道?
当小强拿到7或2的时候。
既然小明说不可能会有小明不知但小强知的情况,这蕴含小强没有拿到7或2的可能。
什麽时候小强不可能拿到7或2?当小明拿到3或9的时候。
: 小强说:本来我也不知道,但是现在我知道了
如果小强够聪明能掌握模态词的语意,他就能藉第一个条件句知道小明手上不是3就是9。
既然他知道小明非3即9,又说原本他不知道但现在知道了,那他手上一定是1或4或8。
: 小明说:哦,那我也知道了
如果小强拿的是4或8,那小明的资料不足,他就不会说他知道了。
唯有小强拿的是1才使得小明说他也知道了。
所以最後的答案是9月1日。
: 请根据以上对话推断出张老师的生日是哪一天
如果一开始就以实质蕴含的方式来理解第一个条件句。根本就不需要考虑啥in all case.
尽管将不知道理解为等一下不知道,你依旧不能一实质蕴含的方式来理解第一个条件句。
换句话说,在将不知道理解为等一下不知道的情况下,原条件句的真值条件依旧是
在所有小明等一下不知道的情况中,小强也是等一下不知道。先不管这是啥令人难
以理解的真值条件,要考虑in all case where ~ka根本就不是基於我们对"知道"的理解。
※ 编辑: somedoubt 来自: 218.168.156.103 (10/21 15:21)