鸽巢原理
定理
3.1 鸽巢原理:简单形式
定理3.1.1
如果要把 n+1 个物体放进 n 个盒子,那么至少有一个盒子包含两个或更多个物体。
3.2 鸽巢原理:加强版
定理3.2.1
设 q1,q2,........,qn 是正整数。
如果将 q1+q2+........+qn-n+1 个物体放入 n 个盒子内,那么或者或者第一个盒子至少含有 q1 个物体,或者第二个盒子至少
含有 q2 个物体,......,或者第 n 个盒子至少含有 qn 个物体。
推论3.2.2
设 n 和 r 都是正整数。如果把 n(r-1)+1 个物体分配到 n 个盒子中,那么至少有一个盒子含有 r 个或更多的物体。
应用
定理3.1.1应用
应用1:
在13个人中存在两个人,他们的生日在同一个月份里。
应用2:
设有 n 对情侣,至少要从这 2n 个人中选出 n+1 个人才能保证能够选出一对情侣。
应用3:
给定 m 个整数 a1,a2,a3,.....,am ,存在满足 0≤ i < j ≤m 的整数 i 和 j ,使得 ai+1+ai+2+.....+aj 能够被 m 整除。
通俗的说就是在序列 a1,a2,a3,.....,am 中存在连续的 a ,这些 a 的加和 sum 能够被 m 整除(sum%m = 0)。
证明:
定义 sum[ i ] 为前 i 项和,考虑这 m 个数
sum[1],sum[2],.........,sum[m]
如果这些前缀和当中的任意一个可被 m 整除,那么结论成立。
假设这 m 个前缀和都不能被 m 整除,那么 sum[ i ]%m = (1,2,3,....,m-1)中的一个;
因为有 m 个前缀和,但只有 m-1 个余数,所以必然存在两个前缀和 sum[ i ]%m = sum[ j ]%m = r ;
不妨假设 sum[ i ]=pm+r , sum[ j ]=qm+r , q > p
两者做差 sum[ j ]-sum[ i ]=(q-p)m 即 ai+1+ai+2+.....+aj = (q-p)m ,可被 m 整除,证明完毕。
应用4:
一位国际象棋大师有11周的时间备战一场总决赛,他决定每天至少下一盘棋,但为了不使自己过于疲劳,他还决定每周下棋总数不超过12盘。
证明存在连续若干天,这位大师恰好下了21盘棋。
证明:
定义 sum[ i ]为前 i 天下棋的总数,因为大师每天至少下一盘棋,所以 sum[1,.....,77 ]序列为严格递增序列,
且1 ≤ sum[1] < sum[2] <.........< sum[77] ≤ 132(11×12) ,那么 22≤sum[1]+21 < sum[2]+21 <.........< sum[77]+21 ≤ 153;
因为这两部分一共有 77×2=154 个数,并且全都在[1,153]范围内,所以至少有两个数相等,又因为 sum[1,.....,77 ]序列为严格递增序列,所以
第一部分间无相同的数,同理,第二部分间也无相同的数,因此必然存在一个 i 和一个 j 使得 sum[ j ] = sum[ i ]+21.
从而这位大师在第 i,i+1,.....,j 连续的 (j-i) 天下了21盘棋。
应用5:
从整数 1,2,3,.....,200 中选出101个整数。
证明在所选的这些整数之间存在两个整数,使得这两个整数一个可被另一个整除。
证明:
易得每个整数都可写成 2k*a 的形式(k≥0,a为奇数),这200个数中有 1,3,5,.......,199 共100个奇数,那么 a 就是从这100个奇数中任取一个,
因为需要取101个数,所以至少存在两个数使得这两个数的 a 相同,假设这两个数分别为 2i*a , 2j*a , j > i 且为整数 ,那么 (2j*a) / (2i*a)=j-i为整数。