面试题:老师生日分析过程,能否建模用程序解答?

题目:
小明和小强都是张老师的学生,张老师的生日是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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了

 

请根据以上对话推断出张老师的生日是哪一天 请大家推推答案是哪一天,下面是我分析推导的过程。

分析:
乍一看不知道从何处入手,条件就是三句对白,遇到这种题目我们应该怎么办呢,首先别慌,然后再一个条件一个条件地分析。
1. 小明说:如果我不知道的话,小强肯定也不知道
通过这个条件,我们可以看是不是可以排除掉某个月份,因为小明知道的是月份;如果小明得到的月份是3,小强的选择有三个,分别是3.4,3.5或者3.8,再看这三个日期的日部分,4,5,8,都是有重复的,说明满足小明的条件(如果我不知道的话,小强肯定也不知道);同理再看6月份,有4日和7日两个日期,所有日期中日为7的只有一个,这说明6月份是不满足小明的条件的,可以排除掉了;9月份的两个日期的日部分也是有重复的,说明有可能是9月份;再看12月,12月2日是没有重复的,这说明12月也可以被排除了。

2. 小强说:本来我不知道,但是现在我知道了
小强在小明条件的前提下说本来我不知道,但是现在我知道了,通过我们上面的分析小明的条件可以排除掉6月份和12月份,我们要在剩下的3月份和9月份的日期中去推。
3月4日 3月5日 3月8日
9月1日 9月5日
这几个日期中的日有:4,5,8,1,而且日期日部分是5的有两个,所以3月5日和9月5日也可以排除了,因为如果小强知道的数字是5的话他就没有办法知道是3月5日还是9月5日。

3. 小明说:哦,那我也知道了
通过条件1,2现在剩下的日期是:
3月4日 3月8日
9月1日
而现在小明说他也知道了,就说明他的条件月份肯定是9了,如果是3的话,他就不能确定是4日还是8日,所以最后答案是9月1日。

呵呵,你答对了没有。

后记:
这种题目能否做数学建模,让电脑去做呢?怎么做?这个随笔意在抛砖引玉,求大家给出一个程序解决的办法,大家各抒己见了。

posted @ 2007-03-12 16:59  玉开  阅读(4792)  评论(29编辑  收藏  举报