有善始者实繁,能克终者盖寡。

# 基本的抽屉原理

k+1k+1 个物品放入 kk 个盒子,则至少有一个盒子中有一个物体。

# 推论:广义抽屉原理

n1+n2++nkn_1 + n_2 + \dots + n_k 放入 kk 个盒子,则必存在一个 ii, 使得第 ii 个盒子里不少于 nin_i 个物体。

# 例题

例 1 在一次会议中,参加会议的人中至少有两人认识的人数相等。(假设认识是相互的)

证明 假设有 nn 人,则认识的朋友数有 0,1,,n10,1,\dots,n-1nn 种情况。又,认识 00 人与认识 n1n-1 人不可能同时出现,于是共 n1n-1 种情况。根据抽屉原理,即证。

例 2112n2n 的正整数中任取 n+1n+1 个,则至少存在两个数,其中一个是另一个的倍数。

证明k=2t(2l1){1,2,,2n}k=2^t(2l-1) \in \{1,2,\dots,2n\}, 考虑对子 (l,k),k=1,2,,2n(l,k), \, k=1,2,\dots,2n. 则 2l12l-1nn 个不同取值。于是根据抽屉原理,必存在两对子 (l1,k1)(l_1,k_1)(l2,k2)(l_2,k_2) 使得 k1k2k_1 \neq k_2l1=l2l_1 = l_2, 则 k1k_1k2k_2 间存在倍数关系。

证明 根据反证法易证。

例题 3 最少连接缆线问题:有 15 台工作站和 10 台服务器,每个工作站可以用一条电缆直接连到某个服务器,同一时刻的每个服务器只能接受一个工作站的访问。任何时刻,任选一组工作站W1,,Wk,k10W_1,…,W_k,\,k\leq10,需要保证这组工作站可以连接到不同的服务器。问最少需要多少缆线?

缆线条数 Nmin=60N_{\min} = 60. 首先构造 N=60N=60 的情况。

将工作站 W1,W2,W3,W4,W5W_1,W_2,W_3,W_4,W_5 与服务器 S1,S2,S3,S4,S5S_1,S_2,S_3,S_4,S_5 对应连接,共 55 条缆线;再将工作站 W11,W12,W13,W14,W15W_{11},W_{12},W_{13},W_{14},W_{15} 与服务器 S6,S7,S8,S9,S10S_6,S_7,S_8,S_9,S_{10} 对应连接,共 55 条缆线;最后将 W6,W7,W8,W9,W10W_6,W_7,W_8,W_9,W_{10} 与其余所有服务器两两连接,共5×10=505\times10=50 条缆线。则共耗费6060 条缆线。这种情况是显然符合要求的。

下面证明N=60N=60 为最小值。采用反证法,不妨N=59N=59。根据抽屉原理,必存在一个服务器,只连接了55 个工作站。于是考虑剩余的1010 个工作站,不满足要求。

例题 4a1,a2,,ama_1,a_2,\dots,a_m 是正整数序列,则存在kkll1klm1≤k≤l≤m,使得ak++ala_k + … + a_lmm 的倍数。

证明 考虑前项和序列Sk=i=1kaiS_k=\sum_{i=1}^ka_i 若存在两项模mm 同余,不妨设为Sk,SlS_k,S_lk<lk<l,则m(SlSk)m|(S_l-S_k)mi=k+1laim|\sum_{i=k+1}^la_i。否则,必存在某项rr 使得mSrm|S_r,则mi=1raim|\sum_{i=1}^ra_i

例题 5a1,a2,,a100a_1,a_2,…,a_{100} 是由1122 构成的序列,且从任意数开始的连续1010 个数的和不超过1616,即ai+ai+1++ai+916,i=1,2,,91a_i+a_{i+1}+…+a_{i+9}≤16,\,i=1,2,…,91。则存在hhkk,使得ah+ah+1++ak=39a_{h} + a_{h+1} + \dots + a_{k}=39

例 6n2+1n^2+1 个不同实数构成的序列中,一定存在长为 n+1n+1 的严格单调子列。

证明 采用反证法,假设只存在长度不超过nn 的严格单调子列。对每个实数aia_i,构造数对(si,ti)(s_i,t_i)。其中sis_i 为以aia_i 为首项的最长单调增子列的长度,tit_i 为以aia_i 为首项的最长单调减子列的长度。于是si,ti{1,2,,n}s_i,t_i∈\{1,2,…,n\}。根据抽屉原理,存在iji≠j 使得(si,ti)=(sj,tj)(s_i,t_i)=(s_j,t_j),此时考虑aia_iaja_j 的大小关系,则矛盾!

这是一个相当有趣的问题!我们可以将其推广为一个组合数学中的基本定理:Erdos-Szekeres 定理。该定理的内容如下:

mn+1mn+1 个互不相同的实数组成的序列,其中必定存在长度为m+1m+1 的递增子列或长度为n+1n+1 的递减子列。

进一步地,如果我们引入偏序集的相关概念。那么我们可以将定理重新描述为:

m,nN+m,n \in \mathbb{N}_+(S,)(S,\prec) 是一个偏序集,S=mn+1|S|=mn+1,那么SS 中总存在长度为m+1m+1 的链或长度为n+1n+1 的反链。

我们可以证明一个引理,即 Dilworth 定理

偏序集最少的链划分数等于其最长反链长度。

采用数学归纳法即可证明。

例题 7 假设认识是相互的,证明66 人中必存在33 人相互认识或者相互不认识。(Ramsey 问题)

证明 转化成K6K_6 红蓝而染色的同色三角形存在性问题,细致讨论即可,略。