組合數學之四 鴿巢原理

2021-08-13 22:31:55 字數 3005 閱讀 5661

如果要把n+1個物品放進n個盒子中,那麼至少有乙個盒子包含兩個或更多東西

這個就是鴿巢原理,本文完

原理很簡單,我們提出兩個推論:

看一下例題吧(從題中參透精華):

∞ 例一

給定m個整數a1,a2,a3,…,am,存在連續的一段區間,使得區間和能被m整除

首先,看到區間和就要條件反射般想到用字首和處理

能被m整除這個條件,就可以轉化成「區間和%m=0」

那麼字首和就用該有m+1個值:

0 a1

a1+a2

a1+a2+a3

… a1+a2+…+am

我們把字首和%m後,會有乙個很顯然但很玄妙的細節:

%m後的數值的範圍一定在:0~m-1(一共m種值)

這就說明,這m+1種字首和中,有m種不同的數值,那麼一定有兩個字首和%m後的值相等

因此要求的區間一定是在這兩個相等的字首和之間的數列

∞ 例二

一位西洋棋大師有11周的時間備戰一場錦標賽,ta決定每天至少下一盤棋

為了不使自己過於疲勞,ta還決定每週不能下超過12盤棋

證明存在連續若干天,期間這位大師恰好下了21盤棋

設ai是在第一天所下的盤數,

因為每天至少下一盤棋,故數列序a[1],a[2],a[3],…,a[77]一定是乙個嚴格遞增序列

又因為任意一周最多下12盤棋,所以a[77]<=11*12=132,因此我們有:

1<=a[1] < a[2] < … < a[77]<=132

那麼序列a[1]+21,a[2]+21,a[3]+21…一定也是乙個嚴格遞增的序列

22<=a[1]+21 < a[2]+21 < … < a[77]+21<=153

於是a[1],a[2],a[3],…,a[n],a[1]+21,a[2]+21,…a[n]+21

這154個數中的每乙個都是1到153之間的整數,由此可知,它們中一定有兩個數是相等的

因為a[i]中沒有相等的數,因此a[i]+21中也沒有乙個相同的數,

那麼一定有一對數:a[j]=a[i]+21

∞ 例三

設m和n是互素的正整數,並設a和b為整數,其中0<=a<=m-1,0<=b<=n-1

於是存在正整數x,使得x%m=a,x%n=b

為證明這個決定,我們考慮n個整數:

a m+a

2m+a

3m+a

… (n-1)m+a

這些整數中,每乙個%m餘數都是a

設其中有兩個數除以n有相同的餘數r,令這兩個數為:im+a,jm+a,其中0<=i < j<=n-1

於是,存在兩個整數qi和qj,使得:

i*m+a=qi*n+r

j*m+a=qj*n+r

得:(j-i)m=(qj-qi)n

因為m,n互質,因此n一定是(j-i)的因子

然而0<=i < j<=n-1,那麼j-i<=n-1,上式不成立

因此,我們可以斷定:這n個數%n之後的餘數各不相同

只要再多取乙個數,那麼%n的餘數一定會和之前的n個數中之一一樣

原問題得證

定理一設q1,q2,…,qn是正整數,如果將(q1+q2+…+qn-n+1)個物體放入n個盒子內

那麼或者第乙個盒子至少含有q1個物體,或者第二個盒子至少含有q2個物體,…,或者第n個盒子至少含有qn個物體

證明:

假設我們把(q1+q2+…+qn-n+1)個物體放入n個盒子,而每個盒子中的物品都不超過qi個

那麼最多有:

(q1-1)+(q2-1)+(q3-1)+…+(qn-1)=(q1+q2+…+qn)-n

個物品

但是原題目中的物品數目比上式的多乙個,這個多出來的物品,無論放在哪乙個盒子中,都有原題設

鴿巢原理的加強版的著色術語就是:

如果(q1+q2+…+qn-n+1)個物體,用n種顏色之一著色,那麼存在某個i,使得第i中顏色的物體(至少)有qi個

顯而易見不是嗎?

推論一設n和r都是正整數,如果把n(r-1)+1個物體中的每乙個物體費拍到n個盒子中,那麼至少有乙個盒子含有r個或更多的物體

在本節的最後,我們提出乙個很重要的討論:

有n^2+1個人排成一列,總能找到n+1個人向前邁一步,使得他們的身高是遞增的(或遞減的)

注意:我們這裡說的遞增指的是單調不減

我們假設不存在長度為n+1的遞增子串行,證明必然存在長度為n+1的遞減子串行

設每個人的身高就是ai

mi為以每乙個元素開頭的最長遞增子串行

由題設得:

也就是說:n^2+1個m值都分布在[1,n]這個區間內

由鴿巢原理加強版,一定有n+1個元素的m值相等

設若存在乙個i(i∈[1,2,…,k])使得

那麼我們就可以把m[k[i+1]]接到a[k[i]]後面,形成乙個新的遞增序列

這樣m[k[i]]>m[k[i+1]],與原題設不符

因此我們得到:

那麼我們可以同理得出:

因此數列:

原問題得證

數學 數論 鴿巢原理

鴿巢原理 所謂鴿巢原理即n 1只鴿子,只有n個巢,則至少有一鴿巢有兩隻鴿子。鴿巢原理又叫抽屜原理,球盒原理。推廣 如果要把n個物件分配到m個容器中,必有至少乙個容器容納至少 n m 個物件。x 大於等於x的最小的整數 poj2356 find a multiple 抽屜原理 題目大意就是先給出乙個數...

有趣的數學問題 鴿巢原理

鴿巢原理,也稱抽屜原理。形象地說明一下 假設有n個鴿籠,有kn 1只鴿子,將所有的鴿子都放入籠子裡,那麼至少有乙個籠子最少裝有k 1只鴿子。常見形式 1 把多於n 1只鴿子放到n個籠子裡,則至少有乙個籠子裡不少於兩隻鴿子。2 把多於m n只鴿子放到n個籠子裡,則至少有乙個籠子裡有不少於m 1只鴿子。...

小學數學開燈問題 小學數學 抽屜原理(鴿巢問題)

假如有4只鴿子,要飛回3個巢穴,會出現什麼情況呢?我們先做 最壞的打算 每個巢穴飛入1只鴿子,剩下的鴿子無論飛入哪乙個巢穴,總有1個巢穴至少有2只鴿子。假如有三個抽屜,媽媽買回4個蘋果,讓你把蘋果放進三個抽屜中,會出現哪些情況呢?我們可以先把4分為幾個整數的和,則有如下四種情況 4 4 0 0 4 ...