面试题:老师生日分析过程,能否建模用程序解答?
题目:
小明和小强都是张老师的学生,张老师的生日是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月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天 请大家推推答案是哪一天,下面是我分析推导的过程。
分析:
乍一看不知道从何处入手,条件就是三句对白,遇到这种题目我们应该怎么办呢,首先别慌,然后再一个条件一个条件地分析。
1. 小明说:如果我不知道的话,小强肯定也不知道
通过这个条件,我们可以看是不是可以排除掉某个月份,因为小明知道的是月份;如果小明得到的月份是3,小强的选择有三个,分别是3.4,3.5或者3.8,再看这三个日期的日部分,4,5,8,都是有重复的,说明满足小明的条件(如果我不知道的话,小强肯定也不知道);同理再看6月份,有4日和7日两个日期,所有日期中日为7的只有一个,这说明6月份是不满足小明的条件的,可以排除掉了;9月份的两个日期的日部分也是有重复的,说明有可能是9月份;再看12月,12月2日是没有重复的,这说明12月也可以被排除了。
1. 小明说:如果我不知道的话,小强肯定也不知道
通过这个条件,我们可以看是不是可以排除掉某个月份,因为小明知道的是月份;如果小明得到的月份是3,小强的选择有三个,分别是3.4,3.5或者3.8,再看这三个日期的日部分,4,5,8,都是有重复的,说明满足小明的条件(如果我不知道的话,小强肯定也不知道);同理再看6月份,有4日和7日两个日期,所有日期中日为7的只有一个,这说明6月份是不满足小明的条件的,可以排除掉了;9月份的两个日期的日部分也是有重复的,说明有可能是9月份;再看12月,12月2日是没有重复的,这说明12月也可以被排除了。
2. 小强说:本来我不知道,但是现在我知道了
小强在小明条件的前提下说本来我不知道,但是现在我知道了,通过我们上面的分析小明的条件可以排除掉6月份和12月份,我们要在剩下的3月份和9月份的日期中去推。
3月4日 3月5日 3月8日
9月1日 9月5日
9月1日 9月5日
这几个日期中的日有:4,5,8,1,而且日期日部分是5的有两个,所以3月5日和9月5日也可以排除了,因为如果小强知道的数字是5的话他就没有办法知道是3月5日还是9月5日。
3. 小明说:哦,那我也知道了
通过条件1,2现在剩下的日期是:
3月4日 3月8日
9月1日
9月1日
而现在小明说他也知道了,就说明他的条件月份肯定是9了,如果是3的话,他就不能确定是4日还是8日,所以最后答案是9月1日。
呵呵,你答对了没有。
后记:
这种题目能否做数学建模,让电脑去做呢?怎么做?这个随笔意在抛砖引玉,求大家给出一个程序解决的办法,大家各抒己见了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架