关于生日的那个经典逻辑题解释

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

答案应该是9月1日。
1)首先分析这10组日期,经观察不难发现,只有6月7日和12月2日这两组日期的
日数是唯一的。由此可知,如果小强得知的N是7或者2,那么他必定知道了老师的
生日。
2)再分析“小明说:如果我不知道的话,小强肯定也不知道”,而该10组日期的
月数分别为3,6,9,12,而且都相应月的日期都有两组以上,所以小明得知M后
是不可能知道老师生日的。
3)进一步分析“小明说:如果我不知道的话,小强肯定也不知道”,结合第2步
结论,可知小强得知N后也绝不可能知道。
4)结合第3和第1步,可以推断:所有6月和12月的日期都不是老师的生日,因为
如果小明得知的M是6,而若小强的N==7,则小强就知道了老师的生日。(由第
1步已经推出),同理,如果小明的M==12,若小强的N==2,则小强同样可以知道老师的生日。即:M不等于6和9。现在只剩下“3月4日 3月5日 3月8日 9月1日
9月5日”五组日期。而小强知道了,所以N不等于5(有3月5日和9月5日),此时,
小强的N∈(1,4,8)注:此时N虽然有三种可能,但对于小强只要知道其中的
一种,就得出结论。所以有“小强说:本来我也不知道,但是现在我知道了”,
对于我们则还需要继续推理
至此,剩下的可能是“3月4日 3月8日 9月1日”
5)分析“小明说:哦,那我也知道了”,说明M==9,N==1,(N==5已经被排除,3月份的有两组)

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
谢谢你的祝福!C语言编程确实是我热爱的领域之一,让我在编码的世界中不断探索和创造。感谢C语言,给了我一种表达自己的方式,并且带领我走进了计算机科学的大门。 从学习C语言的第一天起,我就被它的简洁和灵活所吸引。C语言是一种高效的编程语言,它可以让我以最直接的方式与计算机交互,将我的想法转化为代码,让计算机按照我的意愿去执行。在编程的过程中,我可以挑战自己的思维逻辑和解决问的能力,让我感到无比兴奋和满足。 通过学习C语言,我不仅学到了编程的基本概念和语法规则,还了解到了底层的计算机原理和运行机制。这使我能够更深入地理解计算机的工作原理,并且可以更好地优化和调试代码。C语言的强大功能让我能够实现各种各样的项目,从简单的控制台程序到复杂的图形界面和嵌入式系统。 C语言编程对我来说远不止于一种工具,它是一门艺术,让我可以通过代码创造出独特的作品。每次完成一个项目,看到自己的代码在屏幕上运行,我都会感到一种成就感和自豪。同时,C语言编程也让我不断学习和成长,保持了我的思维的活跃和敏捷。 再次感谢你的祝福,在这个特别的日子里,我会继续努力学习和提升自己的C语言编程技术,为编程世界贡献自己的力量。生日快乐,也祝愿你在自己喜欢的领域中一直前进!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值