来自维基百科,自由的百科全书
鴿巢原理,又名狄利克雷抽屜原理、鴿籠原理。
其中一種簡單的表述法為:
另一種為:
集合论的表述如下:
拉姆齐定理是此原理的推廣。
雖然鴿巢原理看起來很容易理解,但有時使用鴿巢原理會得到一些有趣的結論:
另一個例子:
另一個例子:
更不直觀一點的例子:
鴿巢原理經常在計算機領域得到真正的應用。比如:哈希表的重複問題(衝突)是不可避免的,因為Keys的數目總是比Indices的數目多,不管是多麼高明的算法都不可能解決這個問題。這個原理,還證明任何無損壓縮算法,在把一些輸入變小的同時,作為代價一定有其他的輸入增大,否則對於長度為L的輸入集合,該壓縮算法總能將其映射到一個更小的長度小於L的輸出集合,而這與鴿巢理論相悖。
一种表达是这样的:如果要把n个物件分配到m个容器中,必有至少一个容器容纳至少个物件。
设把n+1个元素分为n个集合,记表示这n个集合里相应的元素个数。
假设
因为
所以
所以
这与题设矛盾,因此结论得证。
证明:若存在一个从集合到集合的单射,那么。
若,易得原式成立。
若,归纳假设存在,有从集合到集合的单射,。 若 如果在映射下没有原像或,那么是一个从 到的单射,所以 ,即。
如果在映射下有原像,那么我们记在映射下的原像为且在映射得到的像为,可以得到映射: 是一个单射所以,即。
将m个元素随机放入n个集合中(m > n)。规定如果n整除m。随机选择一个集合,它的大小的期望值是: 由于只能是整数,所以必有一个m,使得
設 q1, q2, ..., qn 皆是正整數,現有
個物件要分配在n個箱子中,那麼以下敘述至少一者成立:
這個原理一樣可以使用反證法證明,即假設上述所有敘述為假並得出矛盾,方法與前述簡單情況類似。
Seamless Wikipedia browsing. On steroids.