題目描述
有50 家人家,每家一條狗。有一天警察通知,50 條狗當中有病狗,行爲和正常狗不一樣。每人只能通過觀察別人家的狗來判斷自己家的狗是否生病,而不能看自己家的狗,如果判斷出自己家的狗病了,就必須當天一槍打死自己家的狗。結果,第一天沒有槍聲,第二天沒有槍聲,第三天開始一槍響,問:一共死了幾條狗?
答案
第幾天有槍聲,則一共死了幾條狗
答案描述
- 第一天沒有槍聲,說明瘋狗的數量大於1只.
因爲如果是隻有一隻的話, 那麼根據警察通知,50 條狗當中有病狗,行爲和正常狗不一樣:
- 正常狗的主人將看到其他49只狗中有一條瘋狗
- 瘋狗的主人看到的是49只正常狗,他能確定自己的狗就是那個瘋狗, 就會一槍打死自己的狗.
沒槍聲反推可知第瘋狗的數量大於1.
- 第二天沒有槍聲,說明瘋狗的數量大於2只.
第一天沒有槍聲, 對於所有人家來說,都已知了一個條件:就是瘋狗的數量大於1只,並且都知道其他人也知道這一點.
- 如果瘋狗是有兩隻的話.那麼對於正常狗的人來說看到的是49只狗中有兩隻瘋狗
- 瘋狗的主人看到的是49只狗中有一隻瘋狗.他就能確定自己的狗就是瘋狗了,就會一槍打死自己的狗.
沒槍聲反推可知第瘋狗的數量大於2.
- 第三天一陣槍響,說明瘋狗的數量是3只.
這時候,所有人家又知道了一個條件:就是瘋狗的數量大於2只,並且都知道其他人也知道這一點.
- 瘋狗的數量是三隻的話,那麼正常狗的主人之前看到的就是49只狗裏面有3只瘋狗
- 瘋狗的主人看到的就是49只狗裏面有2只瘋狗.
結合已知條件, 他就能判斷自己的狗是瘋狗,所以就會有三聲槍聲. 如果瘋狗的數量大於3的話,就繼續這樣推理下去…
由此,能推導出:如果瘋狗的數量是n(n>0)的話,那麼應該在第n天能確定自己的狗是不是瘋狗.