题目:
小明和小强都是张老师的学生,张老师的生日是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日

小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了

请根据以上对话推断出张老师的生日是哪一天 请大家推推答案是哪一天,下面是我分析推导的过程。

分析:
乍一看不知道从何处入手,条件就是三句对白,遇到这种题目我们应该怎么办呢,首先别慌,然后再一个条件一个条件地分析。
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日
这几个日期中的日有:4,5,8,1,而且日期日部分是5的有两个,所以3月5日和9月5日也可以排除了,因为如果小强知道的数字是5的话他就没有办法知道是3月5日还是9月5日。

3. 小明说:哦,那我也知道了
通过条件1,2现在剩下的日期是:
3月4日 3月8日
9月1日
而现在小明说他也知道了,就说明他的条件月份肯定是9了,如果是3的话,他就不能确定是4日还是8日,所以最后答案是9月1日。

呵呵,你答对了没有。

后记:
这种题目能否做数学建模,让电脑去做呢?怎么做?这个随笔意在抛砖引玉,求大家给出一个程序解决的办法,大家各抒己见了。

面试题:老师生日分析过程,能否建模用程序解答?相关推荐

  1. DDD-经典四层架构划分 + DDD建模分析过程

    文章目录 DDD分层与传统三层区别 DDD分层详解 四层架构图 分层作用 领域对象 DDD编码实践(改进分层) 代码结构描述 扩展定义注解和接口声明 领域模型注入仓储类的问题 一些个人思考- 项目按上 ...

  2. CFD分析过程(CFD Analysis Process)

    2019独角兽企业重金招聘Python工程师标准>>> CFD分析过程 进行CFD分析的一般过程如下所示: 1.将流动问题表示为表达式 2.建立几何与流域的模型 3.设置边界条件和初 ...

  3. 最本质的相机内参intrinsics与外参extrinsics分析,从建模,推导到求解

    相机内参与外参分析,从建模,推导到求解:Camera Extrinsics and Intrinsics. I. 坐标系的建立,Coordinate System. II. 转换关系,Transfor ...

  4. R语言之文本分析:主题建模LDA

    文本分析:主题建模 library(tidyverse) theme_set( theme_bw()) 目标 定义主题建模 解释Latent Dirichlet分配以及此过程的工作原理 演示如何使用L ...

  5. 性能分析之性能建模简述

    文章目录 一.前言 二.建模的定义 三.业务模型和测试模型 四.监控模型 五.分析模型 六.失效模型 七.排队模型 八.总结 一.前言 经常在性能领域里听到建模这个词,也看到有些人写了一些文章或 PP ...

  6. PTA 7-1 老师生日

    小C在ACM实验室已经呆了1年有余了,听从Caisz老师教诲,编程能力大大提高的同时,独立自学能力.分析问题解决问题的能力-都有很大提高,人也变得积极乐观.自信了.某天晚上,佳佳师姐(小C + 佳佳 ...

  7. python画折线图代码-Python折线图的分析过程和画图的方法

    说起折线图,很多人都觉得非常简单,不就是一些点连成的线吗?用 Excel 几秒钟就能画出一张折线图. 真的就这么简单吗? 想一想:在普通的折线图中,如何自动地添加一条代表平均值的横线?如何添加一条带箭 ...

  8. lucene 源码分析_Lucene分析过程指南

    lucene 源码分析 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...

  9. Lucene分析过程指南

    本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式 ...

  10. linux pmap 内存泄露,一个驱动导致的内存泄漏问题的分析过程(meminfo-pmap-slabtop-alloc_calls)...

    关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...

最新文章

  1. 生成Yolox检测负样本-对应空文件夹txt、批量文件重命名、批量转化三通道去除小图
  2. c语言switch计算利润,求助。。关于用switch编写简易计算器
  3. 原生javascript之实战 轮播图
  4. MS SQL 分页存储过程
  5. [HDU]1723Distribute Message
  6. python中使用%与.format格式化文本
  7. oracle老报604和10275,翻出来了 老东西了 , oracle 数据库解析 extent 数据结构解析...
  8. Linux面试题100道
  9. 极客大学架构师训练营 网络通信协议 非阻塞网络I/O NIO 数据库架构原理 第16课 听课总结
  10. java word模板生成pdf,java根据模板生成pdf
  11. docker学习(二)docker入门
  12. 应对不断变化的世界秩序:自治资本主义
  13. python3集合_python3集合练习(set)
  14. Flask项目1(美食地图)
  15. 关于ORA-01034和ORA-27101的一种解决方法
  16. 前端页面设置重置按钮或刷新按钮
  17. 学好 Nginx ,走遍天下都不怕
  18. IFR报告显示过去五年全球工业机器人销量翻番
  19. ★☆【二分圖最佳匹配】丘比特的煩惱
  20. db2 迁移 aix linux,DB2从windowsXP迁移至AIX完整过程

热门文章

  1. 2019牛客多校第二场F Partition problem(暴搜)题解
  2. bat 下 字符串拆分 类似 split 可以使用 for /f delims
  3. commons-httpclient 实现get和post请求
  4. 用VS2013编译FFMPEG232
  5. 集合类接口和类层次关系图
  6. USACO / Mother's Milk (DFS)
  7. 游戏开发中的数学和物理算法(18):缩放
  8. R速成指南-时间序列重采样
  9. Gitlab分支保护
  10. skywalking 6.1 简明指南