找病狗?

来源:互联网 发布:docker jenkins php 编辑:程序博客网 时间:2024/04/25 10:17

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

 

推理过程:
      思路一.
           1. 第三天有枪响,则村子中必然有病狗存在。

           2. 第一天没有枪响,则说明可能村子中不只一只病狗存在。
               理由:假设我的是病狗,其它都不是,则枪必响。

         3.  第二天仍没枪响,则说明村子中的病狗在两只以上。
              理由:假设我的是病狗且看到其中一只也是病狗(共两只),则枪在当天也必响。

         4. 第三天有枪响,则村子中有三只病狗。

原创粉丝点击