算生日是哪天

来源:互联网 发布:看美剧学英语的软件 编辑:程序博客网 时间:2024/04/27 23:12
小明和小强都是张老师的学生,张老师的生日是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日
  小明说:如果我不知道的话,小强肯定也不知道
  小强说:本来我也不知道,但是现在我知道了
  小明说:哦,那我也知道了

  请根据以上对话推断出张老师的生日是哪一天

解答:

此题 用矩阵表示比较方便些:

 1245783  yesyes yes6  yes yes 9yes  yes  12yesyes   yes

小明说:如果我不知道的话,小强肯定也不知道 

则表明:

1、小明当前不知道,即矩阵里行向量只 有一个yes的要去了, 这里没有什么可排除的

2、小明肯定小强此时也不知道,即矩阵里 列向量只有一个yes的去了,即6月7号,12月2号可以排除,

此时 排除了之后,要把 行向量里只有一个yes的排除,如6月4号,因为如果 小明拿的是 6月,则他此时就应该知道是 6月4号 了,所以6月4号可以排除。

此时矩阵状态为:

 1245783  yesyes yes6      9yes  yes  12      

小强说:本来我也不知道,但是现在我知道了

则表明:

1、现在我知道了,则可以排除 列向量中多个yes的列向量,即可以排除3月5号,9月5号,(因为要是小强拿的是5号,则此时他还是不确定 是哪天)

则此时矩阵状态为

 1245783  yes  yes6      9yes     12      

小明说:哦,那我也知道了 

表明:

答案就是此时行向量里只有一个yes的日期,9月1号,(因为要是 小明拿的是3月,他此时还是分不清具体的 是几号)。