分类：教育/科学-理工学科-数学
问题：一道微软的面试题设一个老师的生日为M月N日.把M告诉学生甲(即学 
设一个的生日为M月N日.把M告诉学生甲(即学生甲知道老师出生的月份),把N告诉学生乙(即学生乙知道老师出生的日).现有如下日期是公开的:3月4日,3月8日,3月10日,6月4日,6月7日,9月1日,9月10日,12月1日,12月2日,12月8日.其中有一个是老师的生日.现有学生甲与学生乙的对话:学生甲:如果我不知道的话,你一定不知道.学生乙:本来我不知道的,现在我知道了.学生甲:那我也知道了.现在问:老师的生日是哪一天?
回答：如图：浅绿、浅黄、黄、橙色显示了逐步排除过程：（1）小强说：“本来我也不知道”根据这半句话，排除6月7日和12月2日。因为这两组日期的日数是的，如果小强得知的N是7或者2，那么他也就知道了老师的生日。（2）小明说：“如果我不知道的话，小强肯定也不知道”根据这句话，排除6月和12月。因为各个月份对应的日期都有两组或以上，因此：小明得知M后，是不可能知道老师生日的。根据（1），小明既然肯定地说“小强也不知道”，说明小明肯定地知道“小强得到的日数既不是7也不是2”。他为什么这样肯定呢？因为根据他自己知道的月数，不可能使日数为7或者2。这说明，小明得道的月数不是6也不是12。 （3）小强说：“本来我也不知道，但是现在我知道了”根据这后半句话，排除生日的日数为5。因为根据（1）（2），月数必然为3或9。如果日数是5，那小强还是判断不出来。既然他说“现在我知道了”，所以排除5，N只能是1、4或8。（4）小明说：“哦，那我也知道了”根据这句话，排除月数是3。根据（3），如果月数是3，则：N可能是4或8，小明最后仍然不能判断出日期。既然他说“我也知道了”，说明他得到的月数不是3。这样，最后只有“9月1日”符合条件。综合（1）（2）（3）（4），所以，张老师的生日是“9月1日”