算法之组合数学及其算法篇(二) ----- 鸽巢原理
鴿巢原理
- 前言
- 鴿巢原理
- 運用1
- 運用二
- 運用三
- 鴿巢原理的推廣
- 推論
- 運用一
- 運用二
- 鴿巢原理在幾何上的作用
- 鴿巢原理對于數學的證明
前言
鴿巢原理又稱抽屜原理或鞋盒原理,這個原理最早是由狄利克雷(Dirichlet)提出的。鴿巢原理是解決組合論中一些存在性問題的基本而又有力的工具。它是組合數學中最簡單也是最基本的原理,從這個顯而易見的原理出發,可以導出許多并非顯而易見的有趣結果,而這些結果常常是令人驚奇的。特別是Ramsey理論產生了重要而深遠的影響。1928年,年僅24歲的英國杰出數學家F. P. Ramsey發表了著名論文《論形式邏輯中的一個問題》,他在這篇論文中,提出并證明了關于集合論的一個重大研究成果,現已公認為Ramsey定理。他開拓的這一新領域至今在理論上仍十分活躍,而且近年來在科學技術領域獲得了成功的應用。
鴿巢原理對于我們在解題的時候對解法存在性和正確性的一種強有力的方法。
鴿巢原理
定理 若有n+1只鴿子飛回n個鴿巢,則至少有一個鴿巢里有不少于兩只鴿子。
我們還可以這么描述,若由n+1個東西放入n個盒子中,則至少有一個盒子有不少于兩個物品。
證明:(反證法)假設n個鴿巢中,每個鴿巢里至多有一只鴿子,則鴿子的總數至多為n,但是有n+1只鴿子,矛盾。
[說明]:(1)定理的條件?結論?實質上指出了一種必然性。
(2)鴿巢原理的等價原理:若有n+1個物件放入n個盒子,則至少有一個盒子里有不少于兩個的物件。
(3)鴿巢原理的應用關鍵是:
“認準鴿子”、“構筑鴿巢”。
運用1
從整數1,2,…,100中任選51個整數,證明在選取的這些整數中必存在兩個整數,其中之一可被另一個整除。
證明:
對于1到100之間的任何整數,都可以表示為2n.α2^n.α2n.α的形式,其中n≥0,且α為50個奇數1,3,…,99之中的數。故在所任選的51個整數中,至少有兩個整數含有相同的奇數因子α,令這兩個整數為2r?α和2s?α,不妨r>s,則2s?α能被2r?α整除2^r·α和2^s·α,不妨r>s,則2^s·α能被2^r·α整除2r?α和2s?α,不妨r>s,則2s?α能被2r?α整除。
- 對于1到100之間的任何整數,都可以表示為2n.α2^n.α2n.α的形式 .這是因為我們知道任何一個數都能有唯一的質因子乘積表示。在這些質因子中,2后邊的都是奇數,因此無論多少個奇數的乘積任然是奇數。因此就有上面的結論。
運用二
有9個任給定的整數a1,a2,?,a9,試證明必存在兩個整數k和l(0≤k≤l≤9),使得ak+1+ak+2+...+al能被9整除有9個任給定的整數 a_1,a_2,?,a_9, 試證明必存在兩個整數k和l(0≤k ≤l≤9),使得 a_{k+1}+a_{k+2}+...+a_l 能被9整除有9個任給定的整數a1?,a2?,?,a9?,試證明必存在兩個整數k和l(0≤k≤l≤9),使得ak+1?+ak+2?+...+al?能被9整除。
證明:
首先,如果某個 ai(1≤i≤9)a_i(1≤i≤9)ai?(1≤i≤9) 能被9整除,取k=l=i、得證。
否則,由9個整數可得到9個連續的和式: a1,a1+a2,a1+a2+a3,....,a1+a2+?+a9a1,a1+a2,a1+a2+a3,....,a1+a2+?+a9a1,a1+a2,a1+a2+a3,....,a1+a2+?+a9。 如果某個 a1+a2+?+ai(1<i≤9)a1+a2+?+ai(1<i≤9)a1+a2+?+ai(1<i≤9) 能被9整除,即存在兩個整數k和l(0≤k≤1=i≤9)k和l(0≤k≤1=i≤9)k和l(0≤k≤1=i≤9),得證。
否則,上述9個和式被9除余數可能為1,2,…,8,由鴿巢原理知最少存在兩個和式被9除余數相同,不妨設為 a1+a2+?+ak=a?9+r和a1+a2+?+al=9?b+r,(k<l)a1+a2+?+ak = a*9 + r和 a1+a2+?+al = 9*b+r,(k<l)a1+a2+?+ak=a?9+r和a1+a2+?+al=9?b+r,(k<l), 那么它們的差 ak1+ak+2+?+al=9?(a?b)(0≤k≤1≤9)a_{k1}+a_{k+2}+?+a_l = 9*(a-b)(0≤ k ≤1≤9)ak1?+ak+2?+?+al?=9?(a?b)(0≤k≤1≤9)能夠被9整除。得證
- 對于這個例子我們可以推廣為: 有K個數,那么必有一個連續的序列的和能被S整除。(S<=K)有K個數,那么必有一個連續的序列的和能被S整除。(S<=K)有K個數,那么必有一個連續的序列的和能被S整除。(S<=K)
運用三
在一個正六邊形內任置7點,則至少有兩點之間的距離小于該正六邊形外接圓的半徑在一個正六邊形內任置7點,則至少有兩點之間的距離小于該正六邊形外接圓的半徑在一個正六邊形內任置7點,則至少有兩點之間的距離小于該正六邊形外接圓的半徑
證明:連接這個正六邊形的三條對角線,得到六個小正三角形,每個正三角形的直徑都恰是正六邊形外接圓的半徑。正六邊形內置7點,由鴿巢原理知,總有一個三角形內至少有兩個點,顯然它們的距離小于正六邊形外接圓的半徑。
鴿巢原理的推廣
定理:設m?,m?,… ,mn 均為正整數.如果有 m1+m2+?+mn?n+1 只鴿子飛回n個鴿巢,則或者第一個鴿巢至少有m,只鴿子,或者第二個鴿巢至少有m,只鴿子,…,或者第n個鴿巢至少有m,只鴿子。
證明:(反證法)若定理結論不成立,即第一個鴿巢至多有 m1?1 只鴿子,第二個鴿巢至多有m2-1只鴿子,…,第n個鴿巢至多有m,-1只鴿子。則鴿子總數至多為
(m1?1)+(m2?1)+?+(mn?1)=m1+m2+?+mn?n(m_1?1)+(m_2?1)+?+(m_n?1) =m_1+m_2+?+m_n?n(m1??1)+(m2??1)+?+(mn??1)=m1?+m2?+?+mn??n
這與設定的鴿子數 m1+m2+?+mn?n+1 相矛盾。得證。
[注意]:
(1)鴿巢原理的一般形式是推廣形式的特例,事實上,當 m1=m2=??mn=2 時,
m1+m2+?+mn?n+1=n+1
(2)鴿巢原理的等價表示:設m,,m2,… mn 為正整數,若有 m1+m2+?+mn?n+1 個球放入n個盒子,則或者第一個盒子至少有m,個球,或者第二個盒子至少有m,個球,…,或者第n個盒子至少有m,個球。
推論
這三個推論在證明的時候很常用,下面舉幾個例子。
運用一
- 設有兩個隊Q,和Q,每隊都有30人,其中Q隊由15名男孩和15名女孩組成,Q,隊男、女孩人數不限這兩隊按序號面對面站好。然后,Q,隊不動,Q.隊迂回往右錯動,每次依序錯動一個位置。試證明當Q:錯動到某一位置上時,Q,和Q,在對應位置上的兩個小孩至少有15對是性別相同的。
Q隊迂回錯動一圈再回到初始狀態時,每個小孩,無論是男孩還是女孩,在對應位置上都與Q?隊的15個小孩同性別。故同性別的總對數為15×30=450。
因此,每個錯動位置上同性別的平均對數為 45030=1 15>15-1。由推論2知,必存在某一位置,當Q錯動到這個位置上時,則性別相同的小孩至少有15對。
- 無論是男孩還是女孩,在對應位置上都與Q?隊的15個小孩同性別 : 意思是好比我是一個男孩,那么我在轉一周之后一定會與對面的15個男孩碰面,那么有15次。
運用二
- 若給定n2+1個不等實數構成的序列a?,a?,…an2+1則該序列中至少存在一個由n+1個實數組成的單調遞增或單調遞減子序列。若給定n2+1個不等實數構成的序列a_?,a_?,… a_{n^2+1} 則該序列中至少存在一個由n+1個實數組成的單調遞增或單調遞減子序列。若給定n2+1個不等實數構成的序列a??,a??,…an2+1?則該序列中至少存在一個由n+1個實數組成的單調遞增或單調遞減子序列。
證明:不妨先考慮尋找單調遞增子序列。
令mim_imi?表示從aia_iai?開始最長遞增子序列的項數或長度。若有某個mi≥n+1m_i≥n+1mi?≥n+1 則定理得證。
否則,注意到給定的序列有 n2+1n^2+1n2+1 個實數,故可產生 n2+1個長度,m1,m2?mn2+1,如果全部的mi<n+1,(i=1,2,?,n2+1則這些整數必定在1和n之間。相當于把n2+1個球放入n個盒子n^2+1 個長度, m_1,m_2?m_{n^2+1},如果全部的 m_i<n+1,(i=1,2,?,n^2+1 則這些整數必定在1和n之間。相當于把 n^2+1 個球放入n個盒子n2+1個長度,m1?,m2??mn2+1?,如果全部的mi?<n+1,(i=1,2,?,n2+1則這些整數必定在1和n之間。相當于把n2+1個球放入n個盒子。
由推論1知,(取m1=m2=?=mn2+1=r=n+1,將n(r?1)+1=n2+1個球放入n個盒子中,至少有某個盒子里不少于r個球。)在m1,m2,?,mn2+1中至少有r=n+1個數相等。不妨設m1=m2=?=mn+1=m,且1≤i1<i2<?<in+1≤n2+1,或者說a,,ai2,?,ain+1有相同的m值,則必有a1>a1>?>ai+1即存在著一個長度為n+1的單調遞減子序列。若不然,假如ai1<a??會有mi1=mi2+1≠mi2=m,矛盾(取 m_1=m_2=?=m_{n^2+1}=r=n+1, 將 n(r?1)+1=n^2+1 個球放入n個盒子中,至少有某個盒子里不少于r個球。)在m_1, m_2,?,m_{n^2+1} 中至少有r=n+1個數相等。不妨設 m_1=m_2=?=m_{n+1}=m, 且 1≤i1<i2<?<in+1≤n2+1, 或者說a,, ai2,?,ain+1 有相同的m值,則必有 a1>a1>?>ai+1 即存在著一個長度為n+1的單調遞減子序列。若不然,假如 ai_1 <a?_?會有 m_{i_1}=m_{i_2}+1≠ m_{i_2} =m, 矛盾(取m1?=m2?=?=mn2+1?=r=n+1,將n(r?1)+1=n2+1個球放入n個盒子中,至少有某個盒子里不少于r個球。)在m1?,m2?,?,mn2+1?中至少有r=n+1個數相等。不妨設m1?=m2?=?=mn+1?=m,且1≤i1<i2<?<in+1≤n2+1,或者說a,,ai2,?,ain+1有相同的m值,則必有a1>a1>?>ai+1即存在著一個長度為n+1的單調遞減子序列。若不然,假如ai1?<a???會有mi1??=mi2??+1?=mi2??=m,矛盾。
鴿巢原理在幾何上的作用
鴿巢原理對于數學的證明
總結
以上是生活随笔為你收集整理的算法之组合数学及其算法篇(二) ----- 鸽巢原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法之组合数学及其算法篇(一) ----
- 下一篇: 算法之组合数学及其算法篇(三) ----