〈一座城市裡面,會有兩個頭髮數量完全一樣的人嗎?:簡單聊聊鴿巢原理〉2025-10-01
「一座城市裡面,會有兩個頭髮數量完全一樣的人嗎?」面對這樣的問題,不同的人可能會有不同的直覺:覺得頭髮數量完全一樣很誇張,或覺得只要人夠多,什麼巧合都有可能發生。
又或者,有人會覺得頭髮數量這種事情根本不可能數清楚,就算「理論上」有答案,它也是個無法驗證的問題。甚至你數到一半的時候,這個人的頭髮又掉了幾根,這樣根本無從計算。
然而,這個問題其實比想像中的簡單,雖然我們的確很難數清楚一個人的頭髮有幾根,但根據科學家對人體的研究,我們知道一個人的頭髮數量會落在0到15萬根之間(多數落在10~15萬根)。
以台灣的縣市來說,本島人口最少的屏東縣有20多萬人口,外島除了連江縣之外,金門與澎湖也都有超過十萬以上的人口。所以,在絕大多數的台灣城市中,「因為人數夠多所以總會有人頭髮數量相同」的直覺是對的,而且我們有非常清晰的數學說法可以解決。
鴿巢原理與城市頭髮問題
有一個著名的數學理論叫做「鴿巢原理」,就是說,如果我們要把一定數量的鴿子放進鴿巢中,只要鴿巢的數量比鴿子少,就一定會有鴿子必須與其他鴿子住在同一間。譬如四隻鴿子要進入三間鴿巢,至少會有一間鴿巢必須住兩隻鴿子(當然,也可能四隻都住在同一間鴿巢,但不可能每間都只住一隻)。
以這個頭髮數量的問題來說,如果有一個全知者,就像分配鴿子進入鴿巢那樣,要求整座城市的每個人,按照自己的頭髮數量進到相應的旅館房間(哪裡有這麼多房間的旅館?這個問題可以去問數學家希爾伯特(David Hilbert),他會有辦法的)。我們就會發現,一定會有房間不只處一個人,因為城市的人口數遠比房間的數量還多。
也就是說,我們不必知道如何精確計算人的頭髮數量,就可以得出這個問題的必然答案。這向我們揭示了數學其中一個特別有意思的地方:它不依賴於真實世界,卻可以用來說明真實世界。
數學,有時也能不只是數學
除了「城市頭髮問題」之外,鴿巢原理還能夠給我們一些更不符合直覺,令人感覺莫名其妙的數學結論,譬如:「任意數量的人隨機握手,至少會有兩個人握手數量一樣」。
因為每個個人「握手過的人數」介於0人(完全不握手)與n-1人(和自己以外的所有人握手)之間,而且0人和n-1人的情況不會同時出現(因為如果有人完全不握手,另一個人至少就會沒跟它握到手,也就是握手人數最多只有n-2),所以總人數永遠比「可能的握過手人數」多,就可以用鴿巢原理來得到結論。
除了可以回答這些數學競賽式的奇怪問題外,鴿巢問題也證明了「無損壓縮不可能」,或者更通俗地說「只要簡化就難保會失真」。一定程度上,鴿巢原理也說明了:如果資源不足,競爭或衝突遲早會發生,只是什麼時候、有沒有被我們看見而已。
這些想法是數學,但有些時候數學不只是數學,也能作為一種工具或思維,讓我們更清晰地洞察我們所處的這個世界。
延伸閱讀:
〈為什麼等公車的時間通常會比預期的還久?--關於「檢查悖論」〉
〈黑鴉鴉一片:「烏鴉悖論」的科學哲學啟發〉
〈班門弄斧:班佛定律與世界中的數〉
〈機率思維中的張力:三門問題與「運氣守恆的直覺」〉
〈公平的與穩賺不賠的幻象:三張牌撲克與馬丁格爾法〉













