打狗问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:09:39
A存住了100户人,每家养一只狗,狗中有病狗。每家都只能通过观察别人的狗是否生病去判断自己的狗,一旦发现,必须马上用枪打死(每户只能打死自己的狗)。第一、二天没有枪声;第三天响起一片枪声。
问:村里有几条狗?
(快呀)
那为何第一二天无枪声?(病狗)

答案是三条,不知道能不能看的懂,反正我是没看懂
第一种推论:

??A、假设有1条病狗,病狗的主人会看到其他狗都没有病,那么就知道自己的狗有病,所以第一天晚上就会有枪响。因为没有枪响,说明病狗数大于1。

??B、假设有2条病狗,病狗的主人会看到有1条病狗,因为第一天没有听到枪响,是病狗数大于1,所以病狗的主人会知道自己的狗是病狗,因而第二天会有枪响。既然第二天也每有枪响,说明病狗数大于2。

由此推理,如果第三天枪响,则有3条病狗。

第二种推论

??1 如果为1,第一天那条狗必死,因为狗主人没看到病狗,但病狗存在。

??2 若为2,令病狗主人为a,b。 a看到一条病狗,b也看到一条病狗,但a看到b的病狗没死故知狗数不为1,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b的想法与a一样,故也开枪。

由此,为2时,第一天看后2条狗必死。

??3 若为3条,令狗主人为a,b,c。 a第一天看到2条病狗,若a设自己的不是病狗,由推理2,第二天看时,那2条狗没死,故狗数肯定不是2,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c的想法与a一样,故也开枪。

由此,为3时,第二天看后3条狗必死。

??4 若为4条,令狗主人为a,b,c,d。a第一天看到3条病狗,若a设自己的不是病狗,由推理3,第三天看时,那3条狗没死,故狗数肯定不是3,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c,d的想法与a一样,故也开枪。

由此,为4时,第三天看后4条狗必死。

??5 余下即为递推了,由年n-1推出n。

??答案:n为4。第四天看时,狗已死了,但是在第三天死的,故答案是3条

1、有1只病狗的情况
生病狗的主人在观察所有其他的狗后,发觉其他狗都是相同状态,那么肯定是自己的狗生病,因此第一天就SHOT了自己的狗
2、有两只病狗
第一天病狗主人发现所有别人的狗中有一只病狗,那么有两种可能,自己的狗有病或者自己的没病。