zoukankan      html  css  js  c++  java
  • 50人,50条狗

    50只狗中有病狗(病不会传染)。于是人们就要找出病狗。每人可以观察其他49条够,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知并狗主人。
      主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且只每个人有权利枪毙自己的狗,没权利枪毙其他人的狗。第一天第二天都没有枪响,到第三天传来一阵枪声。
      请问有几只病狗?

     1)如果只有一只病狗(狗主人甲),第一天狗主人甲没看到其他人有病狗,得出自己的是病狗,第一天就会开枪枪毙病狗;其他人已经看到病狗,不能确定自己的狗有没有病,不会作出反应。
    2)如果只有两只病狗(狗主人是甲和乙),第一天狗主人甲看到乙的病狗,不能确定自己的狗有没有病,不会作出反应。乙也一样不反应,其他人也都看到2只病狗,也不会作出反应;
    第二天再看狗时,甲看到乙的病狗没死,他推理出乙第一天看到了别人病狗,而其他人都没病狗,那必须自己的是病狗,乙想法同甲,于是第二天看完狗后两人枪毙两狗,其他人第一天看到两只狗,第二天还是看到两只狗,他们知道甲乙要第二天才能推理出各自的病狗,所以他们也没反应。
    3)如果只有三只病狗(狗主人是甲,乙,丙),第一天甲、乙、丙各看到两只病狗,不能判断总共有三只还是两只病狗,他们想如果是两只,那么第二天就会有人做出情况2的推理,但第二天也没枪响,所以到了第三天,他们就可以断定是3只病狗,那么除了他们看到的两只,就只有自己的那只也是病狗,所以第三天枪响了。
    依次类推,前面都没枪响,第k天枪响,就说明有k只病狗
  • 相关阅读:
    Android简易抽屉效果
    apk 下载并自动安装
    python2.7_1.3_获取远程设备的IP地址
    python2.7_1.2_打印设备名和IPv4地址
    python2.7_1.14_编写一个简单的回显客户端/服务器应用
    python2.7_1.13_编写一个SNTP客户端
    C语言程序转换为Python语言
    5分钟弄懂Docker!
    让正则表达式变简单(PythonVerbalExpressions)
    python sqlalchemy-migrate 使用方法
  • 原文地址:https://www.cnblogs.com/daemonzd47/p/9057340.html
Copyright © 2011-2022 走看看