鴿子洞原理或者稱為抽屜原理

2022-05-15 10:59:26 字數 1409 閱讀 7726

原理概述:

有n只鴿子和m個鴿洞,所有鴿子都住在鴿洞裡,如果n>m,那麼至少有二只鴿子必須住在同一鴿洞裡。

函式觀點:

把鴿子看成是定義域a中元素ai,鴿洞看成是值域b中的元素bj,鴿子住鴿洞作為函式關係。

鴿洞原理:

設f是從有限集a到有限集b的函式,若|a|>|b|,則必有a1,a2∈a,a1≠a2,使f(a1)=f(a2)=b∈bf 包含於b(bf是象域)。

反證:若對任意a1,a2∈a,a1≠a2,f(a1)≠f(a2),|a|=|bf|≤|b|與|a|>|b|矛盾

注:鴿洞原理本質上是對乙個非一對一函式的充分性判別。

這個原理看上去容易理解,且有廣泛的應用。

例1:在n2+1個不同整數的任意排列中,證明一定存在長為n+1的上公升子串行或下降子串行。

證明

設此序列為:a1,a2,…,ak,…,從ak開始上公升子串行長度為xk,下降子串行長度為yk,每乙個ak(k=1,2,…,n2+1)都對應了(xk,yk)。

若不存在長為n+1的上公升或下降子串行,那麼xk ≤n,yk≤n,形如(xk,yk)的不同點對至多有n2個,而ak有n2+1個,必有ai,aj(1≤i<j≤n+1)同時對應(xi,yi)=(xj,yj)。

由於ai≠aj,若ai<aj,則xi至少比xj大1,若ai>aj,則yi至少比yj大1,與(xi,yj)=(xj,yj)矛盾。

例2: 132個球放入77個盒子內,每盒至少放一球,求證:一定有21個球放在相鄰的某幾隻盒子裡。

證明

設第k個盒子裡放的球為bk,得到b1,b2,…,b77,按題意,欲尋找i和j,i>j≥0,使bj+1+bj+2+…+bi=21,即完成證明。

設ak=,得到a1,a2,…,a77,顯然,{ak}是嚴格單調上公升的,ai≠aj (i≠

設  ck=,得到c1,c2,…,c77,{ck}也是嚴格單調上公升的,ci≠cj (i≠j),且c77=153,ci=ai+21。

{ak}與{ck}合在一起共有154個,但只能在1~153中取值,由鴿洞原理,必有二個相同,且不會同是ak中的,也不會同是ck中的,不妨ai=cj=aj+21,ai-aj=21,即,得到bj+1 +bj+2+…+bi=21。

例3

設x1,x2,…,xn是任意排列的任意整數,證明其中存在連續的若干個數,它們之和是n的倍數。

證明:  設ai=

若ai中有n的倍數,則命題成立

若ai中沒有n的倍數,由n除ai的餘數只能在1~n-1中取

以ai(i=1,2,…,n)作鴿子,1~n-1作鴿洞,ai,aj,使ai≡aj(modn)(i>j),則  n|(ai-aj),  即xj+1+xj+2+…+xi是n的倍數。

經典 抽屜原理

抽屜原理 任意367個人中,必有生日相同的人。從任意5雙手套中任取6只,其中至少有2只恰為一雙手套。從數1,2,10中任取6個數,其中至少有2個數為奇偶性不同。大家都會認為上面所述結論是正確的。這些結論是依據什麼原理得出的呢?這個原理叫做抽屜原理。它的內容可以用形象的語言表述為 把m個東西任意分放進...

關於抽屜原理

關於整除問題 a.任意n 1個自然數中,總有兩個自然數的差是n的倍數 例1 任取8個自然數,必有兩個數的差是7的倍數。證明 這8個自然數中有2個自然數,它們除以7的餘數相同.我們可以把所有自然數按被7除所得的7種不同的餘數0 1 2 3 4 5 6 分成七類.也就是7個抽屜.任取8個自然數,根據抽屜...

思維 抽屜原理

codeforces round 707 div.2,c.going home 思路 給出這個值域是2.5e6,開個5e6的陣列,n 暴力列舉就往桶裡扔。也就是cnt a i a j 如果這個cnt 2那麼就找到了答案。最差情況下迴圈5e6 1次數組中必然會出現某個位置cnt i 2 include...