题目
有 50 家人家,每家一条狗。有一天警察通知, 50 条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别
人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天一枪打死自
己家的狗。结果,第一天没有枪声,第二天没有枪声,第三天开始一阵枪响,问:一共死了几条狗?
答案:3条
分析
先从具体情况分析
若1条病狗,第一天有49人看到49条里有1条病狗,有1人看到49条没病的狗,看到49条没病的狗的人便明白自己家的狗是病狗,第一天就会枪响,死一条狗;
若2条病狗,第一天有48人看到49条狗里有2条病狗,有2人看到49条狗里有1条病狗,由于第一天没有枪响,看到49条狗里有1条病狗的人便知道自己家的狗是病狗,第二天会枪响,死两条狗;
若3条狗,第一天有47人看到49条里有3条病狗,3人看到49条里有2条病狗,由于第二天没有枪响,看到2条病狗的人便明白自己家的狗是病狗,第三天会枪响,死3条狗;
……
若n条狗,第一填有50-n人看到49条里有n条病狗,有n人看到49条里有n-1条病狗,由于第n-1天没有枪响,看到n-1条的人便明白自己家的狗是病狗,第n天会枪响,死n条狗。
对于每个人来说,看到49条里有n条病狗,只能判断一共有n条或n+1条病狗,假如第n天仍没有枪响,便会明白自己家的狗是病狗
每个人不能看自己家的狗,也无法对别人家的狗开枪,判断的依据便是在一定有病狗的前提下,通过推测别人的视角来确定自己家的狗是不是病狗。能判断自家狗是病狗的依据就是看到了n条病狗但是第n天仍没有枪响。
结论:m条病狗在第m天枪响
证明:
n=1显然。
假设n=m时,第m天枪响。
当n=m+1时,有人看到m条病狗,有人看到m+1条病狗;看到m条病狗的人判断有m条或m+1条病狗,由于不确定是不是一共有m+1条病狗,故不会在第m天开枪;看到m+1条病狗的人判断一共有m+1条或m+2条病狗,这些人要看到第m+1天是否有人开枪才能判断自家狗是不是病狗,故不会在第m天开枪。由于第m天没有人开枪,说明不是m条病狗,看到m条病狗的人便明白自家狗时病狗,在第m+1天开枪。