前言

前一段时间在问答区看到一道很有意思的题目,来自南京大学计算机系2019复试离散题目,恰巧我之前在校赛中做个类似的题目,于是我尝试回答这道题,给出了还算合理的解释,这里把这道题分享给大家.

                 南京大学计算机系2019复试离散题目回忆
1.佩奇,乔治和苏西三个人玩泥巴,回来后父亲说,你们三个人至少一个人的头上有泥,你们知道自己头上有泥吗三人齐答:不知道。爸爸又问:你们知道自己头上有泥吗?三人又答:不知道。爸爸第三次问,三人齐答:知道了。(1) 对该问题建立数学模型。(2) 说明为什么第三次大家都知道了,或者说明谁头上有泥?(3) 证明:有n个人的情况下,要问到第n次大家才能一起说知道了。

问题(2)的解答

这道题的思路来源是来自一个之前做过的红眼睛蓝眼睛这道题目

红眼睛蓝眼睛题目

一个岛上有100个人,眼睛要么是红色要么是蓝色,其中有5个红眼睛,95个蓝眼睛。这个岛有三个奇怪的宗教规则。

他们不知道自己的眼睛是红色还是蓝色,也不能照镜子,不能看自己眼睛的颜色。
他们不能告诉别人对方的眼睛是什么颜色。
一旦有人知道了自己的眼睛颜色,他就必须在当天夜里自杀。

在第一天有人告诉他们,他们之中有至少一个红眼睛
问:红眼睛会在哪天死亡?蓝眼睛呢?若是没人说至少有一个红眼睛呢?若是说的是至少有一个蓝眼睛呢?

答案:第五天晚上红眼睛的人自杀,第六天其余的95个蓝眼睛的人接着全部自杀

思路分析

假设岛上有两个人且他们都是红眼睛:
第一天,我们挑选其中一个红眼睛的视角,他只能看到另外一个红眼睛,但是他并不能确定自己是红眼睛还是蓝眼睛。
第二天,其中一个看到另外一个红眼睛还活着,就想:为什么他还活着?如果他看到我是蓝眼睛,那他应该在第一天自杀,但是他并没有自杀,说明他看到的也是红眼睛。
然后那两个人第二天晚上回去自杀了…

同样的道理,当有n+1个红眼睛时,
第n+1天,那n+1个人看到其他n个红眼睛还活着,就会想:根据n天的推理,如果只有他们那n个红眼睛,他们昨天晚上就应该自杀了,但是他们没有,说明又不止n个,但我只看到了n个,就说明我自己也是。

然后第n+1个就知道了自己是红眼睛,就在第n+1天晚上回去自杀了…
至于蓝眼睛为什么会死

红眼睛死后的一天,其余的蓝眼睛知道了红眼睛的死讯,自然知道自己是蓝眼睛了,因为他们能看到的n个红眼睛全死了,如果他也是红眼睛,这群红眼睛应该在第n+1天死亡

如果没人说至少有一个红眼睛,那么将不会有人死亡。

如果说的是至少有一个蓝眼睛呢
蓝眼睛与红眼睛交换身份,结论为第5天蓝眼睛死完,第6天红眼睛死完。

回到这道题来

三个孩子,在父亲还没发问时,孩子们的信息有哪些?每个孩子都能看到别人头上是否有泥,我们分析其中一个孩子,当第一次问的时候,如果看到另外两个孩子头上都没泥,那么头上有泥的就是自己了,就该有两个孩子说不知道,一个孩子说知道了,但是孩子都说不知道,说明这个孩子看到另外两个孩子其中一个头上有泥,第二次发问同理,如果孩子只看到一个孩子头上有泥,而另外一个孩子没泥,但是听到其他人说不知道,他就应该说知道了,而第三次发问,一个孩子知道另外两个孩子都说不知道,说明他们都看到另外两个孩子头上都有泥,否则他们就会说知道了,所以说明这三个孩子头上都有泥。这里注意,每个孩子获得的信息有自己看见的其他孩子的头顶,以及其他孩子的回答,在第n天结合n-1天孩子的回答以及自己看到,他们一定能知道自己头上是否有泥。

有趣之处

貌似同样的场景,父亲仿佛说了三句废话,孩子也是相同的回答,但是在第一次、第二次、以及第三次带来的含义是截然不同的。这一点引起了我的思考。这一题与红眼睛蓝眼睛的题目差异是,在父亲每一次发问,孩子们可以得到的信息更多了。

第(3)问解答

按照上一题的结论,在一共n个人,其中有m(m!=n)个人头上有泥,那么将会在第m天头上有泥的孩子都会说我知道了,而在第m+1天所有孩子才会说我知道了。当m=n时,如该题所有孩子将会同时回答知道了。所以至少需要n天能保证所有孩子都回答我知道了。

南京大学计算机系2019复试离散题目-逻辑与推理相关推荐

  1. 南京大学java机试,2019年南京大学计算机考研复试机试真题

    目录 第一题 Stepping Numbers 题意 思路 代码 反思 第二题 Nodes from the Root 题意 思路 代码 大佬的标准题解代码: 菜鸡我的又费空间,又费时间,又臭又长,思 ...

  2. 2019年南京大学计算机系暨人工智能学院开放日和九月推免全记录

    背景 南京大学计算机系暨人工智能学院的开放日分两场,时间大概在七月中旬和七月下旬.其中南京本地的学生参加七月中旬的,外地学生参加七月下旬的.两次开放日上机考试的题目不同,难度也不同,按照以往的惯例都是 ...

  3. 2019年南京大学计算机研究生复试分数线,2019南京大学研究生分数线汇总(含2016-2019历年复试)...

    2019南京大学研究生分数线(含2016-2019历年复试) 考研就是人生的第二次高考,是再一次改变自己命运的机会,所谓7分靠努力,3分靠填报,南京大学历年研究生复试分数线是2019-2020届考研学 ...

  4. 2019武大国重考研地理信息(GIS,资源与环境)复试上机题目分享

    2019武大国重考研地理信息系统专硕(测绘工程/资源与环境)(GIS)复试上机题目分享 目录 2019武大国重考研地理信息系统专硕(测绘工程/资源与环境)(GIS)复试上机题目分享 1.前言 2.题目 ...

  5. 【附答案】Java面试2019常考题目汇总(一)

    转载自  [附答案]Java面试2019常考题目汇总(一) 一.JAVA基础篇-概念 1.简述你所知道的Linux: Linux起源于1991年,1995年流行起来的免费操作系统,目前, Linux是 ...

  6. 北航计算机2014复试上机题,北航计算机系考研复试上机真题及答

    北航计算机系考研复试上机真题及答 (29页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Kao400.com 出品 侵权必究 北京航空航 ...

  7. 南京大学计算机系教材,模式识别-南京大学计算机系.pdf

    模式识别课程简介模式识别系统简介吴建鑫南京大学计算机系课程介绍课程目标理解记忆模式识别中的基本概念步骤和方法对重要方法要能实际应用并能理解其前提条件应用范围应用注意事项和方法原理及推导对讲授的其他方法 ...

  8. 上海交通大学计算机专业有调剂吗,上海交通大学计算机系2019考研调剂信息

    考研调剂主要是给考研初试成绩不太理想的同学们继续进行研究生学历深造的机会,如果需要进行调剂,目标是调剂到一个差不多的学校,需要你根据自己的分数和要调剂院校的复试情况,及结合该院校的调剂信息进行.中公小 ...

  9. 北航计算机学院上机试题,北航计算机系考研复试上机真题及答.pdf

    北航计算机系考研复试上机真题及答.pdf K 出品 侵权必究 北京航空航天大学计算机系考研 复试 06-12 上机真题及答案 复试上机指导 1. 本真题只是供辅助作用,关键还是研友平时动手能力练 习和 ...

  10. 计算机复试题,计算机复试笔试题目

    计算机复试笔试题目 1.离散:这是第三次考的真题了!估计明年不会考了,但是以后就不一定了. 这个题目是个老题目了,考了很多年了. 已知G={ | x, y 是实数,x != 0 },且(x, y)*( ...

最新文章

  1. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
  2. 10.Facade-外观模式
  3. List集合去重的一种方法
  4. Go: GoRoutine是如何实现的?
  5. boost::histogram::algorithm::project用法的测试程序
  6. android入门学习-天气预报app(一)
  7. java中集合(List)的嵌套分配值、移除等操作
  8. SysTick系统定时器(功能框图和优先级配置)
  9. IP地址在数据库里面的存储方式
  10. 整站php_小白同学的福利:PHP常见面试题(附答案)
  11. npm install报错:npm WARN saveError ENOENT: no such file or directory, open ‘xxx‘
  12. 靶机渗透练习57-digitalworld.local:JOY
  13. Python中随机梯度下降法
  14. 开始写博客~~~~~
  15. SQLyog连接linux数据库问题
  16. 客户 服务器协议简写,客户端和服务器端的简写
  17. 大数据入门(Hadoop生态系统)
  18. c++11新特性--decltype
  19. 半年学好英语能有多简单?
  20. babylonjs 分部加载模型_17 Babylonjs入门进阶 使用场景加载器加载glTF,OBJ,STL模型...

热门文章

  1. 有重复组合公式及其证明方法
  2. linux解密shadow_Linux /etc/shadow(影子文件)内容解析(超详细)
  3. 北京的哪些地方开的发票可参与国家税务局的摇奖
  4. R 聚类热图-数据的标准化
  5. Soul网关源码阅读06-使用zookeeper同步数据(01)
  6. PMP-32项目成本管理
  7. 喜欢和平精英、王者荣耀的小伙伴,快来看看这些游戏模型都是怎么制作出来的
  8. 什么是运行时应用程序自我保护(RASP)Runtime Application Self-Protection
  9. python截图(长图和短图)方法封装
  10. Android模仿微信浮窗功能的效果实现