版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/wssmiss/article/details/86670759
鸽巢原理普通形式
定理:
如果要把n+1个鸽子放进n个笼子里,那么至少有一个笼子里有两个鸽子。
例子:要点是找出或构造出鸽子和笼子
例1:某次会议有n个人,那么至少有两人认识的人数相等
每个人除去自身最多认识n-1个人,这时就不会有人一个人也不认识 于是有两种情况:认识的人数有0,1,2,……,n-2 ;或者1,2,……,n-1;可能认识的人数都只有n-1个(笼子),而一共有n个人(鸽子)所以至少有两个人认识的人数相等
例2:给定5个不同的正整数,其中至少有3个数的和被3除尽。
按除以3的余数讨论:余0,余1,余2,所以五个数中至少有两个数除以3余数相等。 若5个数中有3个数的余数同为0,1,2,则这三个数即为所求 若5个数中有2对数的余数相等(又可分三种情况,请读者自己讨论),从中各取一个,这三个数和一定能被3整除
例3:
设
a
1
,
a
2
,
.
.
.
,
a
m
是
正
整
数
的
序
列
,
证
明
则
至
少
存
在
整
数
k
和
l
,
设 a_1 , a_2, ... ,a_m 是正整数的序列,证明则至少存在整数k和l,
设 a 1 , a 2 , . . . , a m 是 正 整 数 的 序 列 , 证 明 则 至 少 存 在 整 数 k 和 l ,
1
≤
k
≤
l
≤
m
,
使
a
k
+
a
k
+
1
+
.
.
.
+
a
l
是
m
的
倍
数
1≤k≤l≤m,使a_k+a_{k+1}+...+a_l 是m的倍数
1 ≤ k ≤ l ≤ m , 使 a k + a k + 1 + . . . + a l 是 m 的 倍 数
证明思路 :
构
造
s
k
=
∑
i
=
1
k
a
i
的
序
列
。
构造s_k=\sum_{i=1}^k{a_i} 的序列。
构 造 s k = i = 1 ∑ k a i 的 序 列 。
设
s
1
=
a
1
;
s
2
=
a
1
+
a
2
;
s
3
=
a
1
+
a
2
+
a
3
.
.
.
.
.
s
m
=
a
1
+
a
2
+
.
.
.
+
a
m
设s_1=a_1;s_2=a_1+a_2;s_3=a_1+a_2+a_3 ..... s_m=a_1+a_2+...+a_m
设 s 1 = a 1 ; s 2 = a 1 + a 2 ; s 3 = a 1 + a 2 + a 3 . . . . . s m = a 1 + a 2 + . . . + a m ①若其中有一个s_n是m的倍数,则得证,即sn ≡ 0 mod m(同余的表达法,除以m余0) ②若在上述序列中没有一个是m的倍数,即sn ≡ rn mod m,其中rn=1,2,3,… ,m-1. 运用鸽巢原理,一共有m个序列(鸽子),除以m的余数rn有m-1个(笼子) 所以至少有两个序列除以m同余,即有sk≡sn mod m,则有 sk-sn ≡ 0 mod m 即:
S
n
−
S
k
=
a
k
+
1
+
a
k
+
2
+
.
.
.
+
a
n
≡
0
m
o
d
  
m
,
得
证
!
S_n - S_k = a_{k+1}+a_{k+2}+...+a_n ≡ 0 \mod m , 得证!
S n − S k = a k + 1 + a k + 2 + . . . + a n ≡ 0 m o d m , 得 证 !
例4:从1~2n个正整数中任取n+1个,证明这n+1个数中至少有一对数,其中一个数是另一个数的倍数
证明: 设所取得n+1个数分别为
a
1
,
a
2
,
a
3
,
.
.
.
,
a
n
+
1
,
且
a
i
=
2
k
i
b
i
,
其
中
b
i
是
a
i
中
去
掉
因
子
2
所
剩
的
奇
数
a_1,a_2,a_3,...,a_{n+1},且a_i=2^{k_i}b_i,其中b_i是a_i中去掉因子2所剩的奇数
a 1 , a 2 , a 3 , . . . , a n + 1 , 且 a i = 2 k i b i , 其 中 b i 是 a i 中 去 掉 因 子 2 所 剩 的 奇 数
b
i
的
序
列
:
b
1
,
b
2
,
.
.
.
,
b
n
+
1
,
共
n
+
1
个
b_i的序列:b_1,b_2,...,b_{n+1} , 共n+1个
b i 的 序 列 : b 1 , b 2 , . . . , b n + 1 , 共 n + 1 个 注:若ai是偶数,则bi=1;若ai是奇数,则ki为0,bi为奇数 因为1~2n中只有n个奇数,即bi最多只有n种可能(笼子),bi却有n+1个(鸽子),由鸽巢原理,{bi}中至少有两数相等,
记
a
i
=
2
k
i
b
r
=
a
j
=
2
k
j
b
r
,
若
a
i
>
a
j
,
则
a
i
是
a
j
的
倍
数
,
证
毕
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
记a_i=2^{k_i}b_r = a_j = 2^{k_j}b_r,若a_i >a_j,则a_i是a_j的倍数,证毕. .................
记 a i = 2 k i b r = a j = 2 k j b r , 若 a i > a j , 则 a i 是 a j 的 倍 数 , 证 毕 . . . . . . . . . . . . . . . . . .
例5:
1
和
2
组
成
a
1
,
a
2
,
.
.
.
,
a
100
的
序
列
,
若
有
a
i
+
a
i
+
1
+
.
.
.
+
a
i
+
9
≤
16.
1和2组成a_1,a_2,...,a_{100}的序列,若有a_i+a_{i+1}+...+a_{i+9}≤16.
1 和 2 组 成 a 1 , a 2 , . . . , a 1 0 0 的 序 列 , 若 有 a i + a i + 1 + . . . + a i + 9 ≤ 1 6 .
则
至
少
存
在
h
,
k
k
>
h
,
使
a
n
,
a
n
+
1
,
.
.
.
,
a
k
=
19
则至少存在h,k k>h,使a_n,a_{n+1},...,a_k = 19
则 至 少 存 在 h , k k > h , 使 a n , a n + 1 , . . . , a k = 1 9 证明 :