鸽巢原理 学习笔记
鴿巢定理的簡單形式
鴿巢原理(抽屜原理):如果有n+1個鴿子要進n個鴿巢,則至少存在一個鴿巢種包含兩個或更多的鴿子。
看上去是一句“廢話”,不過這句”廢話“在用來證明一個排列或則某種現象的存在性上相當有魅力!
關于鴿巢原理更抽象的表述:
? If X has more elements than Y, then f is not one-to-one.
? If X and Y have the same number of elements and f is onto, then f is one-to-one.
? If X and Y have the same number of elements and f is one-to-one, then f is onto.
?
?中國剩余定理上有關鴿巢定理的證明
令m,n為互素的正整數,并令a,b為兩個整數,且0 <= a <= n - 1, 0 <= b <= n - 1。Therefore,存在一個正整數x,使得x mod m = a 并且 x mod n = b;即寫成x = pm + a, x = qn + b。這里p和q是兩個整數。
證明:
首先考慮n個整數
a, m + a, 2*m + a, 3*m + a, ... , (n - 1)*m + a;
這些整數中每個數除以m都余a。設其中兩個除以n有相同的余數r。令這兩個數為i*m + a, j*m + a。(0 <= i < j <= n - 1)。因此,存在兩個整數qi, qj使得
i * m + a = qi * n + r??? ---------- (1)
j * m + a = qj * n + r??? -----------(2)
整理得
(j - i)*m = (qj - qi)*n??? ------------(3)
從(3)式可以看出n是(j - i)*m的因子,因為n和m互素。所以n是(j - i)的因子。然而 0 <= i < j <= n - 1 即 0 < j - i <= n - 1,也就是說n不可能是j - i的因子。這和之前的假設:n個整數a, m + a, 2*m + a, 3*m + a, ... , (n - 1)*m + a;中有兩個除以n會有相同的余數。因此可以確定:這n個數中每一個除以n都有不同的余數。根據鴿巢原理:n個數,0,1,...,n - 1中的每一個數作為余數都要出現;特別的數b也會出現。令p為整數,滿足0 <= p <= n - 1 ,且使數x = pm + a 除以n的余數為b。則對于某個特定的數q:
x = q*n + b
到此得證中國剩余定理。
?
鴿巢原理的加強形式
定理: 令q1, q2, q3, ...., qn為正整數。如果將 q1, q2, q3, ...., qn - n + 1 個物體放到n個盒子中,則存在一個i,使得第i個盒子至少含有qi個物品 ;
證明: 假設將q1, q2, q3, ...., qn - n + 1個物品分別放到n個盒子里。如果每一個i (i = {1, 2, ..n}),第i個盒子中放少于qi 個物品,則所有盒子所放物品的總數不超過
(q1 - 1) + (q2 - 1) + ... + (qn - 1) = q1 + q2 + ... + qn - n
顯然,比所要放的總數少一個。因此可以確定,對某個i (i = {1, 2, .. n}),第i個盒子至少包含qi個物品。
?
?
?
?
?
???
轉載于:https://www.cnblogs.com/vongang/archive/2012/03/29/2423723.html
總結
- 上一篇: 在DataGireView中加筛选条件
- 下一篇: 事件发布的小程序