這是我最早聽說的趣味邏輯題之一,是很小的時候父親告訴我的:
“有3頂黑帽子,2頂白帽子。讓三個人從前到后站成一排,給他們每個人頭上戴一頂帽子。每個人都看不見自己戴的帽子的顏色,卻只能看見站在前面那些人的帽子顏色。(所以最后一個人可以看見前面兩個人頭上帽子的顏色,中間那個人看得見前面那個人的帽子顏色但看不見在他后面那個人的帽子顏色,而最前面那個人誰的帽子都看不見,F(xiàn)在從最后那個人開始,問他是不是知道自己戴的帽子顏色,如果他回答說不知道,就繼續(xù)問他前面那個人。事實上他們?nèi)齻戴的都是黑帽子,那么最前面那個人一定會知道自己戴的是黑帽子。為什么?”
答案是,最前面的那個人聽見后面兩個人都說了“不知道”,他假設(shè)自己戴的是白帽子,于是中間那個人就看見他戴的白帽子。那么中間那個人會作如下推理:“假設(shè)我戴了白帽子,那么最后那個人就會看見前面兩頂白帽子,但總共只有兩頂白帽子,他就應(yīng)該明白他自
己戴的是黑帽子,現(xiàn)在他說不知道,就說明我戴了白帽子這個假定是錯的,所以我戴了黑帽子!眴栴}是中間那人也說不知道,所以最前面那個人知道自己戴白帽子的假定是錯的,所以他推斷出自己戴了黑帽子。
我們把這個問題推廣成如下的形式:
“有若干種顏色的帽子,每種若干頂。假設(shè)有若干個人從前到后站成一排,給他們每個人頭上戴一頂帽子。每個人都看不見自己戴的帽子的顏色,而且每個人都看得見在他前面所有人頭上帽子的顏色,卻看不見在他后面任何人頭上帽子的顏色,F(xiàn)在從最后那個人開始,問他是不是知道自己戴的帽子顏色,如果他回答說不知道,就繼續(xù)問他前面那個人。一直往前問,那么一定有一個人知道自己所戴的帽子顏色!
當(dāng)然要假設(shè)一些條件:
1) 首先,帽子的總數(shù)一定要大于人數(shù),否則帽子都不夠戴。
2)“有若干種顏色的帽子,每種若干頂,有若干人”這個信息是隊列中所有人都事先知道的,而且所有人都知道所有人都知道此事,所有人都知道所有人都知道所有人都知道此事,等等等等。但在這個條件中的“若干”不一定非要具體一一給出數(shù)字來。這個信息具體地可以是象上面經(jīng)典的形式,列舉出每種顏色帽子的數(shù)目
“有3頂黑帽子,2頂白帽子,3個人”,
也可以是
“有紅黃綠三種顏色的帽子各1頂2頂3頂,但具體不知道哪種顏色是幾頂,有6個人”,
甚至連具體人數(shù)也可以不知道,
“有不知多少人排成一排,有黑白兩種帽子,每種帽子的數(shù)目都比人數(shù)少1”,
這時候那個排在最后的人并不知道自己排在最后──直到開始問他時發(fā)現(xiàn)在他回答前沒有別人被問到,他才知道他在最后。在這個帖子接下去的部分當(dāng)我出題的時候我將只寫出“有若干種顏色的帽子,每種若干頂,有若干人”這個預(yù)設(shè)條件,因為這部分確定了,題目也就確定了。
3) 剩下的沒有戴在大家頭上的帽子當(dāng)然都被藏起來了,隊伍里的人誰都不知道都剩下些什么帽子。
4) 所有人都不是色盲,不但不是,而且只要兩種顏色不同,他們就能分別出來。當(dāng)然他們的視力也很好,能看到前方任意遠(yuǎn)的地方。他們極其聰明,邏輯推理是極好的?偠灾,只要理論上根據(jù)邏輯推導(dǎo)得出來,他們就一定推導(dǎo)得出來。相反地如果他們推不出自己頭上帽子的顏色,任何人都不會試圖去猜或者作弊偷看──不知為不知。
5) 后面的人不能和前面的人說悄悄話或者打暗號。
當(dāng)然,不是所有的預(yù)設(shè)條件都能給出一個合理的題目。比如有99頂黑帽子,99頂白帽子,2個人,無論怎么戴,都不可能有人知道自己頭上帽子的顏色。另外,只要不是只有一種顏色的帽子,在只由一個人組成的隊伍里,這個人也是不可能說出自己帽子的顏色的。
但是下面這幾題是合理的題目:
1)3頂紅帽子,4頂黑帽子,5頂白帽子,10個人。
2)3頂紅帽子,4頂黑帽子,5頂白帽子,8個人。
3)n頂黑帽子,n-1頂白帽子,n個人(n>0)。
4)1頂顏色1的帽子,2頂顏色2的帽子,……,99頂顏色99的帽子,100頂顏色100的帽子,共5000個人。
5)有紅黃綠三種顏色的帽子各1頂2頂3頂,但具體不知道哪種顏色是幾頂,有6個人。
6)有不知多少人(至少兩人)排成一排,有黑白兩種帽子,每種帽子的數(shù)目都比人數(shù)少1。
大家可以先不看我下面的分析,試著做做這幾題。
如果按照上面3頂黑帽2頂白帽時的推理方法去做,那么10個人就可以把我們累死,別說5000個人了。但是3)中的n是個抽象的數(shù),考慮一下怎么解決這個問題,對解決一般的問題大有好處。
假設(shè)現(xiàn)在n個人都已經(jīng)戴好了帽子,問排在最后的那一個人他頭上的帽子是什么顏色,什么時候他會回答“知道”?很顯然,只有在他看見前面n-1個人都戴著白帽時才可能,因為這時所有的n-1頂白帽都已用光,在他自己的腦袋上只能頂著黑帽子,只要前面有一頂黑
帽子,那么他就無法排除自己頭上是黑帽子的可能──即使他看見前面所有人都是黑帽,他還是有可能戴著第n頂黑帽。
現(xiàn)在假設(shè)最后那個人的回答是“不知道”,那么輪到問倒數(shù)第二人。根據(jù)最后面那位的回答,他能推斷出什么呢?如果他看見的都是白帽,那么他立刻可以推斷出自己戴的是黑帽──要是他也戴著白帽,那么最后那人應(yīng)該看見一片白帽,問到他時他就該回答“知道”了。但是如果倒數(shù)第二人看見前面至少有一頂黑帽,他就無法作出判斷──他有可能戴著白帽,但是他前面的那些黑帽使得最后那人無法回答“知道”;他自然也有可能戴著黑帽。
這樣的推理可以繼續(xù)下去,但是我們已經(jīng)看出了苗頭。最后那個人可以回答“知道”當(dāng)且僅當(dāng)他看見的全是白帽,所以他回答“不知道”當(dāng)且僅當(dāng)他至少看見了一頂黑帽。這就是所有帽子顏色問題的關(guān)鍵!
如果最后一個人回答“不知道”,那么他至少看見了一頂黑帽,所以如果倒數(shù)第二人看見的都是白帽,那么最后那個人看見的至少一頂黑帽在哪里呢?不會在別處,只能在倒數(shù)第二人自己的頭上。這樣的推理繼續(xù)下去,對于隊列中的每一個人來說就成了:
“在我后面的所有人都看見了至少一頂黑帽,否則的話他們就會按照相同的判斷斷定自己戴的是黑帽,所以如果我看見前面的人戴的全是白帽的話,我頭上一定戴著我身后那個人看見的那頂黑帽!
我們知道最前面的那個人什么帽子都看不見,就不用說看見黑帽了,所以如果他身后的所有人都回答說“不知道”,那么按照上面的推理,他可以確定自己戴的是黑帽,因為他身后的人必定看見了一頂黑帽──只能是第一個人他自己頭上的那頂。事實上很明顯,第一個說出自己頭上是什么顏色帽子的那個人,就是從隊首數(shù)起的第一個戴黑帽子的人,也就是那個從隊尾數(shù)起第一個看見前面所有人都戴白帽子的人。
這樣的推理也許讓人覺得有點循環(huán)論證的味道,因為上面那段推理中包含了“如果別人也使用相同的推理”這樣的意思,在邏輯上這樣的自指式命題有點危險。但是其實這里沒有循環(huán)論證,這是類似數(shù)學(xué)歸納法的推理,每個人的推理都建立在他后面那些人的推理上,而
對于最后一個人來說,他的身后沒有人,所以他的推理不依賴于其他人的推理就可以成立,是歸納中的第一個推理。稍微思考一下,我們就可以把上面的論證改得適合于任何多種顏色的推論:
“如果我們可以從假設(shè)斷定某種顏色的帽子一定會在隊列中出現(xiàn),從隊尾數(shù)起第一個看不見這種顏色的帽子的人就立刻可以根據(jù)和此論證相同的論證來作出判斷,他戴的是這種顏色的帽子,F(xiàn)在所有我身后的人都回答不知道,所以我身后的人也看見了此種顏色的帽子。如果在我前面我見不到此顏色的帽子,那么一定是我戴著這種顏色的帽子!
當(dāng)然第一個人的初始推理相當(dāng)簡單:“隊列中一定有人戴這種顏色的帽子,現(xiàn)在我看不見前面有人戴這顏色的帽子,那它只能是戴在我的頭上了。”
對于題1)事情就變得很明顯,3頂紅帽子,4頂黑帽子,5頂白帽子給10個人戴,隊列中每種顏色至少都該有一頂,于是從隊尾數(shù)起第一個看不見某種顏色的帽子的人就能夠斷定他自己戴著這種顏色的帽子,通過這點我們也可以看到,最多問到從隊首數(shù)起的第三人時,就應(yīng)該有人回答“知道”了,因為從隊首數(shù)起的第三人最多只能看見兩頂帽子,所以最多看見兩種顏色,如果他后面的人都回答“不知道”,那么他前面一定有兩種顏色的帽子,而他頭上戴的一定是他看不見的那種顏色的帽子。
題2)也一樣,3頂紅帽子,4頂黑帽子,5頂白帽子給8個人戴,那么隊列中一定至少有一頂白帽子,因為其它顏色加起來一共才7頂,所以隊列中一定會有人回答“知道”。
題4)的規(guī)模大了一點,但是道理和2)完全一樣。100種顏色的5050頂帽子給5000人戴,前面99種顏色的帽子數(shù)量是1+……+99=4950,所以隊列中一定有第100種顏色的帽子(至少有50頂),所以如果自己身后的人都回答“不知道”,那么那個看不見顏色100帽子的人就可以斷定自己戴著這種顏色的帽子。
至于5)、6)“有紅黃綠三種顏色的帽子各1頂2頂3頂,但具體不知道哪種顏色是幾頂,有6個人”以及“有不知多少人排成一排,有黑白兩種帽子,每種帽子的數(shù)目都比人數(shù)少1”,原理完全相同,我就不具體分析了。
最后要指出的一點是,上面我們只是論證了,如果我們可以根據(jù)各種顏色帽子的數(shù)量和隊列中的人數(shù)判斷出在隊列中至少有一頂某種顏色的帽子,那么一定有一人可以判斷出自己頭上的帽子的顏色。因為如果所有身后的人都回答“不知道”的話,那個從隊尾數(shù)起第一個
看不見這種顏色的帽子的人就可以判斷自己戴了此顏色的帽子。但是這并不是說在詢問中一定是由他來回答“知道”的,因為還可能有其他的方法來判斷自己頭上帽子的顏色。比如說在題2)中,如果隊列如下:(箭頭表示隊列中人臉朝的方向)
白白黑黑黑黑紅紅紅白→
那么在隊尾第一人就立刻可以回答他頭上的是白帽,因為他看見了所有的3頂紅帽子和4頂黑帽子,能留給他自己戴的只能是白帽子了。
本文來自:逍遙右腦記憶 http://yy-art.cn/gaozhong/155980.html
相關(guān)閱讀:高考文科數(shù)學(xué)必背公式有哪些