hasekell编程作业想不下去,就打算换个事做做,写一篇博文吧。
小明和小强都是张老师的学生,张老师的生日是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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天
小明知道月份,小强知道日期
小明说如果我不知道,小强也不会知道,因为小明知道只知道月份,不可能知道,表明小强不知道,代表该月份的每一个日期都有重复的。
那么小强可以知道月份不是6月,不是12月,因为6.7,12.2都是唯一的
那么只有3月,9月,小强马上就知道了生日,表明日期在3月和9月是唯一的,那么可能是3月4,3月8,9月1
3个日子任何一个,小强都可以说知道了
但是小明通过小强知道了,自己就知道了,表明该月份只有一个特殊日子,那么就是9月,而不是3月,所以张老师9月1号生日
ps:要注意的是小明,小强,我们旁观者思路要分开,虽然有共同知道的信息,不然可能会混淆
在群里,一个家伙提出了这个题目,说是微软面试题,但是没有思路,就拿过来看看
小明和小强都是张老师的学生,张老师的生日是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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天
小明知道月份,小强知道日期
小明说如果我不知道,小强也不会知道,因为小明知道只知道月份,不可能知道,表明小强不知道,代表该月份的每一个日期都有重复的。
那么小强可以知道月份不是6月,不是12月,因为6.7,12.2都是唯一的
那么只有3月,9月,小强马上就知道了生日,表明日期在3月和9月是唯一的,那么可能是3月4,3月8,9月1
3个日子任何一个,小强都可以说知道了
但是小明通过小强知道了,自己就知道了,表明该月份只有一个特殊日子,那么就是9月,而不是3月,所以张老师9月1号生日
ps:要注意的是小明,小强,我们旁观者思路要分开,虽然有共同知道的信息,不然可能会混淆