题目: 有50 家人家,每家一条狗。有一天警察通知,50条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天一枪打死自己家的狗。结果,第一天没有枪声,第二天没有枪声,第三天开始一枪响,问:一共死了几条狗?

第一天没有枪声,说明疯狗的数量大于1只. 因为如果是只有一只的话, 那么根据(已知条件1)警察通知,50
条狗当中有病狗,行为和正常狗不一样。那么正常狗的主人将看到其他49只狗中有一条疯狗,
而疯狗的主人看到的是49只正常狗,他能确定自己的狗就是那个疯狗, 就会一枪打死自己的狗. 没枪声反推可知第疯狗的数量大于1.

第二天没有枪声,说明疯狗的数量大于2只. 第一天没有枪声,
对于所有人家来说,都已知了一个条件(已知条件2):就是疯狗的数量大于1只,并且都知道其他人也知道这一点.
如果疯狗是有两只的话.那么对于正常狗的人来说看到的是49只狗中有两只疯狗,
疯狗的主人看到的是49只狗中有一只疯狗.他就能确定自己的狗就是疯狗了,就会一枪打死自己的狗. 没枪声反推可知第疯狗的数量大于2.

第三天一阵枪响,说明疯狗的数量是3只.
这时候,所有人家又知道了一个条件(已知条件3):就是疯狗的数量大于2只,并且都知道其他人也知道这一点.
疯狗的数量是三只的话,那么正常狗的主人之前看到的就是49只狗里面有3只疯狗,而疯狗的主人看到的就是49只狗里面有2只疯狗. 结合已知条件3,
他就能判断自己的狗是疯狗,所已就会有三声枪声. 如果疯狗的数量大于3的话,就继续这样推理下去…

由此,能推导出:如果疯狗的数量是n(n>0)的话,那么应该在第n天能确定自己的狗是不是疯狗.

有50 只狗,找出其中病狗相关推荐

  1. 算法题:“找出单身狗”--找出一个数组中只出现一次的数字

    题目:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次. 编写一个函数找出这两个只出现一次的数字. 解题过程以及思路:(思路在代码中以注释形式给出) //一个数组中只有两个数字是出现一次,其 ...

  2. [开心IT面试题] 关于50个人50条狗有几条病狗的推算

    题目: 村子里有50个人,每人有一条狗,在这50条狗中有病狗(这种病不传染),于是人们要找出病狗. 每个人可以观察其他49条狗,以判断他们是否生病,(如果有病一定能看出来),只有自己的狗不能看,观察后 ...

  3. 50条狗中有多少条病狗?

    问题: 村子中有50个人,每人有一条狗.在这50条狗中有病狗(这种病不会传染).于是人们就要找出病狗.每个人可以观察其他的49条狗,以判断它们是否生病, 只有自己的狗不能看.观察后得到的结果不得交流, ...

  4. IBM面试题 50条狗 有病狗 有几条病狗?

    题目:村子里有50个人,每人有一条狗,在这50条狗中有病狗(这种病不传染),于是人们要找出病狗. 每个人可以观察其他49条狗,以判断他们是否生病,(如果有病一定能看出来),只有自己的狗不能看,观察后得 ...

  5. 1000瓶酒其中1瓶有毒,10只老鼠找出毒酒

    1: 折半查找的方式       容易理解 500瓶每瓶1滴放在一起看老鼠喝了死不死       依次类推 250->125->63->32->16->8->4-& ...

  6. (找不同问题)有 50 家人家,每家一条狗。有一天警察通知, 50 条狗当中有病狗,行为和正常狗不一样

    问题描述 有 50 家人家,每家一条狗.有一天警察通知,50 条狗当中有病狗,行为和正常狗不一样.每人只能通过观察别人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必 ...

  7. 有 50 家人家,每家一条狗。有一天警察通知, 50 条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别 人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天

    文章目录 题目 一.题目获得的条件 二.假设法解决题目 1.举例子 2.深入理解 总结 题目 有 50 家人家,每家一条狗.有一天警察通知, 50 条狗当中有病狗,行为和正常狗不一样.每人只能通过观察 ...

  8. 面试、逻辑推理题(一) 诚实者问题、财富问题、病狗问题

    关于逻辑推理题:诚实者问题,财富问题,病狗问题的解题思路和回答,如果有更好的方法或者有质疑请评论提出,欢迎大家发表不同的见解供我学习参考,谢谢 ps:如果有一些有趣的逻辑题也可以告诉我哦 1. 诚实者 ...

  9. 找出一个数组里面前K个最大数

    前言:今天早上来实验室,同桌问了我一个问题:找出一个数组里面前K个最大数的高效算法.最近正好在看数据结构和算法相关内容,便以己之力帮她思考了思考. 问题:找出一个数组里面前K个最大数. 解法: 1.第 ...

最新文章

  1. 运行React-Rative工程MyProject错误
  2. qmenubar无边框 qt_Qt UI测试:如何模拟使用QTest QMenuBar项目上的点击?
  3. python控制autocad_利用python控制Autocad:pyautocad方式
  4. python程序占用内存高_如何优化Python占用的内存,面试必学
  5. fastjson解析多层数据_怎么解析三层List json数据
  6. java在控制台输出空心正方形,菱形,空心菱形
  7. ACL2020论文:使用强化学习为机器翻译生成对抗样本
  8. 阿里矢量图标库 - 如何修改和使用自定义字体名称
  9. LaTeX的安装教程(Texlive 2020 + TeX studio)
  10. Git问题解决方案:不建议在没有为偏离分支指定合并策略时执行pull操作(Pulling without specifying how to reconcile divergent branches)
  11. AI创作现状与未来发展浅析
  12. 指挥系统核心服务器,应急指挥中心指挥调度系统解决方案(一)
  13. 使用vue-cropper
  14. 视频码率、分辨率、帧率的关系
  15. win10显示无法连接到Internet但是能上网
  16. c++实现三国杀小游戏
  17. Linux之磁盘管理
  18. oracle ssd加速,联合评测 | Intel Optane SSD 有效加速SmartX 超融合在Oracle等场景下的系统性能...
  19. SUST OJ 1675: Fehead的项目(单调栈)
  20. html手指动图,推荐10款gif动态图片特效(收藏)

热门文章

  1. 原局凶存,大运流年体现,早亡命例。
  2. 北洋 BTP-R380 打印机驱动
  3. Qt OpenGL(08)通过递归细分正二十面体逼近球面
  4. HackerRank 题目目录
  5. 推荐3个游戏小程序,让你整个暑假都充实!
  6. 【基于C++与MFC的阴阳师辅助JIAO本】防止脱发,珍爱生命,人人有责
  7. 数字图像处理(9): 图像缩放、图像旋转、图像翻转 和 图像平移
  8. Navicat数据库管理工具的基本操作
  9. 提高你计算机科学知识的5本书
  10. python光标变粗了怎么办_Python 操作鼠标键盘 pyAutoGUI