警察通知有病狗
Posted 再吃一个橘子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了警察通知有病狗相关的知识,希望对你有一定的参考价值。
有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天能确定自己的狗是不是疯狗.
以上是关于警察通知有病狗的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记106:Spring学习---AOP的通知 :前置通知,后置通知,返回通知,异常通知,环绕通知