題目:50人有50條狗,有病狗。每個人只能看到其他人的狗(不能看到自己的狗),只有狗的主人才能打死狗。相互不能交流,不能通知狗的主人。如果推斷出自家狗是病狗,就要槍斃,只能槍斃自家狗。第一天沒有槍聲,第二天有一陣槍聲。請問有幾只病狗?
聽說這是小升初的考試題,這實在是太難了,懷疑那些出題的老師第一次看到這個題能不能做出來。這應該是離散數(shù)學中典型的邏輯分析題,我想除了專門修過離散數(shù)學和少數(shù)天才外應該很少有人在規(guī)定時間內(nèi)算出答案,反正我算不出。下面的分析過程,是我參考了網(wǎng)上的答案,再按照自己的理解寫出來的。
其實我認為這個題之所以難,我覺得是題目表達的不夠清晰。理解這個問題首先有幾個隱含的條件要搞明白。
a、50只狗里面至少有1只病狗。
b、病狗是一眼就能分辨出來的,但是狗的主人無法觀察判斷自己的狗是不是病狗。
c、狗的主人推斷出自己的狗是病狗后,一定要在當天殺死狗,在當天中的0:00到24:00任何時候都行。
從而還能得到一個推論d:如果病狗的主人看到N只病狗,那么好狗的主人能看到N+1只病狗,也就是說病狗的主人看到的病狗的數(shù)量是實際病狗數(shù)量再減1.
明確了上述的3個條件和1個結(jié)論,再去解答這個問題,就會簡單很多。
1, 假設只有1只病狗,所有人在觀察完其他人的狗后,那么根據(jù)推論d,病狗的主人不會看到病狗,再根據(jù)條件a,從而能夠推斷出自己的狗是病狗,于是會在當天24點之前殺死自己的狗。
2, 但是第一天沒有槍聲,說明至少有2只病狗(把這個結(jié)果當成推論e)。于是從第二天0:00開始,所有人都應該知道至少有兩只病狗。假設只有2只病狗,根據(jù)推論d,病狗的主人只看到1只病狗,說明剩下的那只沒有看到的病狗就是自己的狗,于是在第二天可以從0:00到24:00選擇任何一個時間點殺死自己的狗,第二天就會聽到槍聲。
3, 繼續(xù)假設有3只病狗的話。由根據(jù)推論d,病狗的主人能觀察到2只病狗,再根據(jù)推論e,所以無法判斷自己的狗是否為病狗,所以在第二天不可能殺狗,也就不會有槍聲,綜合1和2,答案為2只狗。
4, 把題目改一下,改成是第三天聽到槍聲。第二天0:00一到,大家都知道有2只病狗了,那么第二天一直到24:00都沒有槍聲的話,說明每個人都看到至少2只病狗。根據(jù)推論d,那么從第三天0:00開始,每個人會知道至少有3只病狗。假設也只有3只病狗,那么病狗的主人只能看到2只病狗,說明剩下的那只沒有看到的病狗就是自己的狗,于是在第三天肯定要殺死自己的狗,第三天就會有槍聲。
5, 以此類推,第幾天聽到槍聲,就有幾只狗。