一道有意思的邏輯題

2021-09-30 13:00:17 字數 1903 閱讀 9225

、在一條街上,有5座房子,噴了5中顏色。每個房子住著不同國籍的人。每個人喝不同的飲料,抽不同品牌的香菸,養不同的寵物。問題是:誰養魚?(30分)

2.瑞典人養狗    

3.丹麥人喝茶

4.綠色房子在白色房子左邊

5.綠房子主人喝咖啡

6.抽pallmall香菸的人養鳥

7.黃色房子的主人抽dunhill香菸

8.住在中間房子的人喝牛奶

9.挪威人住第一間房

10.抽bleeds香菸的人住在養貓的人隔壁

11.養馬的人住抽dunhill香菸的人隔壁

12.抽bluemaster的人喝啤酒

13.德國人抽prince香菸

14.挪威人住藍色房子隔壁

15.抽bleeds香菸的人有乙個喝水的鄰居

答案:

德國人養魚 

首先就能確定挪威人住第一間房,第9條提示。

然後根據第1、4、14條提示可以確定挪威人的房子為黃色。

而第7、黃色房子主人抽dunhill香菸。確定挪威人抽dunhill香菸。

第一間房是挪威人的,而14、挪威人住藍色房子隔壁,確定第二間房為藍色。

8、住在中間房子的人喝牛奶,確定第三間房(中間)的人喝牛奶。

而5、綠色房子主人喝咖啡且4、綠色房子在白色房子左面,能滿足這些條件,那麼綠色房只能是第四間,白色房為第五間,那麼紅色就只能在中間(第三間房)。

這樣就推算出的房子的排列順序。(黃,藍,紅,綠,白)

12、抽blue master的人喝啤酒。我們已經知道7、黃色房子主人抽dunhill 香菸,在第一間房。而8、住在中間房子的人喝牛奶;5、綠色房子主人喝咖啡。可以確定抽blue master,喝啤酒的人只可能在藍色房子(第二間)或是在白色房子(第五間)。

現在就用排除法試試,我們假設抽blue master、喝啤酒的人在藍色房子(第二間)的位置。

15、抽blends香菸的人有乙個喝水的鄰居。我們現在知道第一間房的挪威人抽dunhill 香菸,而第三間紅色房子的英國人喝牛奶(1、英國人住紅色房子;8、住在中間房子的人喝牛奶),

第四間綠色房的人喝咖啡(5、綠色房子主人喝咖啡),要滿足這些條件,那麼那個喝水的人只能在第五間白色房。現在啤酒,牛奶,咖啡,水都確定下來了。再看看3、丹麥人喝茶。而現在只有第一間黃色房沒有對應的飲料,但第一間房是挪威人的,所以我們把抽blue master、喝啤酒的人放在藍色房子(第二間)的位置的假設是錯誤的。

那麼現在我們就確定抽blue master、喝啤酒的人在第五房白色房。再來看看15、抽blends香菸的人有乙個喝水的鄰居。第一間挪威人抽dunhill香菸,而第三間房喝牛奶,第四間房喝咖啡,第五間房是啤酒,所以抽blends香菸的人只能在第二間藍色房。那麼第一間的挪威人就只能喝水了。現在已經正確的對應了四種飲料,只有第二間藍色房沒有對應的飲料。飲料來了,3、丹麥人喝茶。

13、德國人抽prince香菸。我們已經知道第一間房是挪威人,第二間房是丹麥人,第三間房是英國人,而第五間房的人抽blue master香菸,所以就推算出德國人在第四間房。

6、抽pall mall香菸的人養鳥。現在只有第三間房沒有對應的香菸,那麼第三間房的英國人就是抽pall mall香菸、養鳥的人。

至此,已確定了四種國籍,只有第五間沒有對應的國籍,那麼第五間房就只能是瑞典人住了,且養狗(2、瑞典人養狗)。

10、抽blends香菸的人住在養貓的人隔壁。抽blends香菸的人在第二間房,而他右邊的英國人是養鳥的,所以養貓的人只能是在他左邊的挪威人了。抽blends香菸的人是養馬的。(11、養馬的人住抽dunhill 香菸的人隔壁)

到現在就已出現了四種寵物了,且都找到了對應的位置,那麼魚在哪個位置上呢。呵呵,我想你看了上面的分析,不會不知道吧。

一道有意思的邏輯分析題

題目 我的分析 albert 我不知道cheryl的生日,但是我知道你也不會知道。分析 說明不可能是2月21號 4月22日,所以排除2月和4月,就剩下3月和5月 bernard 一開始我也不知道cheryl的生日,現在我知道了 分析 不可能是15號,因為假設是15號,那麼可能是3月15號,或者5月1...

一道很有意思的演算法題

已知陣列a n 由陣列a n 構造陣列b n 構造方法如下 product a 0 a 1 a n b i product a i 0 i n 要求如下 1.不能使用除法。2.不能宣告新的變數,不能申請新的記憶體。3.時間複雜度為o n 簡單分析 1.不能使用除法的話必須使用累乘。2.由於時間複雜度...

一道很有意思的題目

先列出 然後再開始解析 include stdafx.h include using namespace std class a class b public a void seta a data,int idx int tmain int argc,tchar argv for int i 0 i...