[益智]:病狗問題

題目描述

有50 家人家,每家一條狗。有一天警察通知,50 條狗當中有病狗,行爲和正常狗不一樣。每人只能通過觀察別人家的狗來判斷自己家的狗是否生病,而不能看自己家的狗,如果判斷出自己家的狗病了,就必須當天一槍打死自己家的狗。結果,第一天沒有槍聲,第二天沒有槍聲,第三天開始一槍響,問:一共死了幾條狗?

答案

第幾天有槍聲,則一共死了幾條狗

答案描述

  1. 第一天沒有槍聲,說明瘋狗的數量大於1只.

因爲如果是隻有一隻的話, 那麼根據警察通知,50 條狗當中有病狗,行爲和正常狗不一樣:

  • 正常狗的主人將看到其他49只狗中有一條瘋狗
  • 瘋狗的主人看到的是49只正常狗,他能確定自己的狗就是那個瘋狗, 就會一槍打死自己的狗.

沒槍聲反推可知第瘋狗的數量大於1.

  1. 第二天沒有槍聲,說明瘋狗的數量大於2只.

第一天沒有槍聲, 對於所有人家來說,都已知了一個條件:就是瘋狗的數量大於1只,並且都知道其他人也知道這一點.

  • 如果瘋狗是有兩隻的話.那麼對於正常狗的人來說看到的是49只狗中有兩隻瘋狗
  • 瘋狗的主人看到的是49只狗中有一隻瘋狗.他就能確定自己的狗就是瘋狗了,就會一槍打死自己的狗.

沒槍聲反推可知第瘋狗的數量大於2.

  1. 第三天一陣槍響,說明瘋狗的數量是3只.

這時候,所有人家又知道了一個條件:就是瘋狗的數量大於2只,並且都知道其他人也知道這一點.

  • 瘋狗的數量是三隻的話,那麼正常狗的主人之前看到的就是49只狗裏面有3只瘋狗
  • 瘋狗的主人看到的就是49只狗裏面有2只瘋狗.

結合已知條件, 他就能判斷自己的狗是瘋狗,所以就會有三聲槍聲. 如果瘋狗的數量大於3的話,就繼續這樣推理下去…

由此,能推導出:如果瘋狗的數量是n(n>0)的話,那麼應該在第n天能確定自己的狗是不是瘋狗.

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章