posts - 9, comments - 6, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

生日推理

Posted on 2006-07-11 17:48 飞仙 阅读(252) 评论(0)  编辑 收藏 引用 所属分类: 逻辑推理
题目:

小明和小强都是张老师的学生,张老师的生日是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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天?

【鼠标往下拖动看解答】


解答:

其实很简单,就3个条件,小明和小强的三句对话。然后运用排除法就很简单可以推出来了。
分析一:“小明说:如果我不知道的话,小强肯定也不知道 ”
     假如M==6,小明说:“如果我不知道的话,小强肯定也不知道”;此时如果N==7,则在所有的N中(N可取值1、2、4、5、7、8),小强可以猜出是6月7日,则小明说的话不对。所以,M不可能是6。
     同理,M不可能是12;M只有3和9两种可能。

分析二:
“小强说:本来我也不知道,但是现在我知道了 ”
     “本来我也不知道”,这就排除了N为2和7的可能,N可能是1、4、5、8。在下面的日期中:
3月4日 3月5日 3月8日
9月1日 9月5日
相对于N==5有两种可能,M==3或M==9,小强不可能知道。

所以,如果N==1,4,8三种可能。

分析三:“小明说:哦,那我也知道了”
            如果M==3猜不出是3月4日还是3月8日,所以M只有一种可能就是等于9,此时N==1,是9月1日。



只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理