一句话
把 件东西放进 个抽屉,必有一个抽屉里至少有两件。更一般地, 件东西放进 个抽屉,必有一个抽屉里至少有 件。
证明只要一行(反证):每屉至多 件,总共至多 件,放不下。真正的难点是:题目不会把抽屉交给你。你要把对象分划成几类,让“同一类的两个”恰好满足题目要的性质——这就是卷一里集合的分划。
例:从 1, 2, …, 20 中任取 11 个数,必有一个是另一个的倍数
第 1 / 4 步- 先试着躲开
取 :任何一个的 倍都超过 ,没有倍数关系。 个数躲得开。
先猜后证
从 中最多能取多少个数,使得其中任何一个都不是另一个的倍数?
个: 就行。 个就不行了,因为奇数部分只有 种。“最多 个”和“取 个必定成功”是同一件事的两面。
第 1 站 · 子集族(卷一)
抽屉不一定装数,也可以装子集。
例:{1, 2, …, n} 的 2ⁿ⁻¹ + 1 个不同子集中,必有两个不相交
第 1 / 4 步- 苹果是子集
元集合共有 个子集,题目从中取了 个——超过一半。
第 2 站 · 周期数列(卷五)
无穷多项,却只有有限种“状态”——抽屉原理保证状态必然重复,而递推让重复变成周期。
例:斐波那契数列除以 m 的余数是周期数列
第 1 / 4 步- 状态
由前两项决定,所以把相邻两项的余数 看成一个状态。
第 3 站 · 存在性问题(卷五)
“必存在连续若干项之和是 的倍数”——抽屉不放原数,放前缀和。
一题多解
任给 个整数 ,证明:必有连续的若干项(至少一项),其和是 的倍数。
前缀和进余数抽屉
令 ()。若某个 ,已经成立。
否则 个前缀和落在 个非零余数里,必有 (),于是 是 的倍数。
例:(),前缀和 余 ,,所以 。
代价一次抽屉原理,干净利落。
试图直接构造
对具体的数可以试出来,但一般的 个数没有公式告诉你是哪一段。
抽屉原理的价值就在于:不必找到那一段,也能证明它一定存在。
代价说不出该取哪一段,只能一个个试——这正是抽屉原理擅长的“只证存在”。
练一练
平面上至少取多少个整点(横、纵坐标都是整数的点),才能保证其中有两个点的连线中点也是整点?
从 中至少取多少个数,才能保证其中有两个数互质?
的子集组成的族,如果其中任意两个子集都相交,这个族最多有多少个子集?
任给 个不同的整数,证明:其中必有两个数,它们的和或差是 的倍数。