126. Line Up by Height


洋基队教练凯西·斯坦格尔曾名言要让球员们“按身高顺序按字母排队”。假设26名球员,各身高互异,按字母顺序排成一列。证明至少有六名球员的身高也是按顺序排列的——要么由矮到高,要么由高到矮。

这是 Erdős–Szekeres 定理(1935)的一个经典应用:任意\((r-1)(s-1)+1\)个互不相同的数,必含长度为\(r\)的严格递增子序列,或长度为\(s\)的严格递减子序列。取\(r=s=6\),得\((6-1)(6-1)+1=26\),正好是本题的26名球员。

把26名球员按字母顺序排成一列,设第\(i\)位球员的身高为\(h_i\),且所有身高互异。对每位球员\(i\)定义:

  • \(a_i\):以第\(i\)位球员结尾的、身高由矮到高的最长子序列的长度;
  • \(b_i\):以第\(i\)位球员结尾的、身高由高到矮的最长子序列的长度。

关键观察:对任意\(i<j\),

  • 若\(h_i<h_j\),则以\(i\)结尾的递增子序列接上\(j\)后,得到一个以\(j\)结尾的递增子序列,故\(a_j\ge a_i+1\);
  • 若\(h_i>h_j\),则同理有\(b_j\ge b_i+1\)。

所以,不同球员的\((a_i,b_i)\)绝不可能相同:若两个球员\(i<j\)的两个数都相等,则无论\(h_i\)与\(h_j\)孰大孰小,其中一个数都会被严格增大——矛盾。

现在假设不存在6名球员身高也是按顺序排好的(无论是矮到高,还是高到矮),即不存在长度为6的递增或递减子序列。那么对每个\(i\),都有\(1\le a_i\le 5\)且\(1\le b_i\le 5\),因而\((a_i,b_i)\)最多只有\(5\times 5=25\)种不同的取值。可26名球员需要26对互不相同的\((a_i,b_i)\)——鸽巢原理说这是不可能的。矛盾,故必存在长度至少6的单调子序列,即至少有6名球员的身高也已按顺序排好。

边界26不能再小:25名球员可以排成一列,避免出现任何长度为6的单调子序列。把身高按字母顺序对应的排名分成5组,每组5人,组内由高到矮、组与组之间由矮到高,即

\[ 5,4,3,2,1,\quad 10,9,8,7,6,\quad 15,14,13,12,11,\quad 20,19,18,17,16,\quad 25,24,23,22,21.\]

(数字代表身高排名,越大越高。)任意递增子序列最多从每组取1人,长度\(\le5\);任意递减子序列只能待在同一组之内,长度也\(\le5\)。因此25人时结论不一定成立,而26人时必然成立——“至少六人”刚好是最优边界。

Previous