考啦,考啦,一个逻辑推理的问题,看你的脑瓜好使不 :D

mouseanAnya 2005-07-25 01:26:14
小明和小强都是张老师的学生,张老师的生日是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日

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

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

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

请根据以上对话推断出张老师的生日是哪一天
...全文
311 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangqijun199 2005-08-03
  • 打赏
  • 举报
回复
9.1
qxq321 2005-08-03
  • 打赏
  • 举报
回复
dinginging!!!!!
YiOnLine 2005-07-28
  • 打赏
  • 举报
回复
bugchen888 2005-07-28
  • 打赏
  • 举报
回复
晕了.....
gbsck 2005-07-28
  • 打赏
  • 举报
回复
有意思!
CrazyFor 2005-07-27
  • 打赏
  • 举报
回复
Diiiiiiiiiiiing.
mouseanAnya 2005-07-27
  • 打赏
  • 举报
回复
嘿嘿,答案
------------------------------------------------
题目分析:由10组数据3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 可知--4日、8日、5日、1日分别有两组,2日和7日只有一组。如果生日是6月7日或12月2日,小强一定知道(例如:老师告诉小强N=7,则小强就知道生日一定为6月7日;如果老师告诉小强N=4,则生日是3月4日还是6月4日?小强就无法确定了)
1、.“小明说:如果我不知道的话,小强肯定也不知道”--老师告诉小明的是月份M值,若M=6或12,则小强有可能知道(6月7日或12月2日)这与“小强肯定也不知道”相矛盾,所以不可能为6月和12月。
  从而老师的生日只可能是3月4日 3月5日 3月8日 月1日 9月5日。
2、“小强说:本来我也不知道,但是现在我知道了 ”--若老师告诉小强N=5,那么小强无法知道是3月5日还是9月5日?这与“现在我知道了”相矛盾,所以N不等于5。
  则生日只能为3月4日 3月8日 9月1日。
3、“小明说:哦,那我也知道了 !若老师告诉小明M=3,则小明就不知道是3月4日还是3月8日。这与“那我也知道了”相矛盾。所以M不等于3即生日不是3月4日 3月8日。
综上所述:张老师生日只能是9月1日!!!
j9898 2005-07-26
  • 打赏
  • 举报
回复
3月4日
aiyahujiejun 2005-07-26
  • 打赏
  • 举报
回复
3月8号
wangdehao 2005-07-26
  • 打赏
  • 举报
回复
摘自 jinjazz@近身剪 的blog
wangdehao 2005-07-26
  • 打赏
  • 举报
回复
--SQLServer2000建立测试环境
set nocount on
create table logic (Value char(2))

insert into logic(value)
select('34')
union select('35')
union select('38')
union select('64')
union select('67')
union select('91')
union select('95')
union select('c1')
union select('c2')
union select('c8')
union select('c5')


--测试语句

--1、小明说:如果我不知道的话,小强肯定也不知道
delete from logic
where left(value,1) in(
select left(value,1) from logic a
where not exists (
select * from logic
where right(a.value,1)=right(value,1)
and value<>a.value
)
)
--2、小强说:本来我也不知道,但是现在我知道了
delete a from logic a
where exists(
select * from logic
where right(value,1)=right(a.value,1)
and value<>a.value)
--3、小明说:哦,那我也知道了
delete a from logic a
where exists(
select * from logic
where left(value,1)=left(a.value,1)
and value<>a.value)


select * from logic

--删除测试环境
drop table logic
set nocount off

--执行结果
/*--------------------------
Value
91
----------------------------*/
j9898 2005-07-26
  • 打赏
  • 举报
回复
仔细想了想: 9月1日 哈哈. libin_ftsafe(子陌红尘)真快!
seu31199113 2005-07-25
  • 打赏
  • 举报
回复
没有答案,楼上的被骗啦!!
xiaomeixiang 2005-07-25
  • 打赏
  • 举报
回复
9月1日

第1句话说明N值必是重复出现的,所以排除7、2所在的月6,12
第2句话说明N在剩下的2个月中只出现过一次,所以排除5日
第3句话说明剩下的3天中,哪一个月中只占1天则是!
frankguojf 2005-07-25
  • 打赏
  • 举报
回复
6月4日
UandM 2005-07-25
  • 打赏
  • 举报
回复
9.1
victorycy 2005-07-25
  • 打赏
  • 举报
回复
第一句排除6月、12月,第2句排除5日,第3句排除3月。剩下9月1日是唯一可能值。
子陌红尘 2005-07-25
  • 打赏
  • 举报
回复
9月1日
mouseanAnya 2005-07-25
  • 打赏
  • 举报
回复
NO...

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧