算法之组合数学及其算法篇(二) ----- 鸽巢原理
鸽巢原理
- 前言
- 鸽巢原理
- 运用1
- 运用二
- 运用三
- 鸽巢原理的推广
- 推论
- 运用一
- 运用二
- 鸽巢原理在几何上的作用
- 鸽巢原理对于数学的证明
前言
鸽巢原理又称抽屉原理或鞋盒原理,这个原理最早是由狄利克雷(Dirichlet)提出的。鸽巢原理是解决组合论中一些存在性问题的基本而又有力的工具。它是组合数学中最简单也是最基本的原理,从这个显而易见的原理出发,可以导出许多并非显而易见的有趣结果,而这些结果常常是令人惊奇的。特别是Ramsey理论产生了重要而深远的影响。1928年,年仅24岁的英国杰出数学家F. P. Ramsey发表了著名论文《论形式逻辑中的一个问题》,他在这篇论文中,提出并证明了关于集合论的一个重大研究成果,现已公认为Ramsey定理。他开拓的这一新领域至今在理论上仍十分活跃,而且近年来在科学技术领域获得了成功的应用。
鸽巢原理对于我们在解题的时候对解法存在性和正确性的一种强有力的方法。
鸽巢原理
定理 若有n+1只鸽子飞回n个鸽巢,则至少有一个鸽巢里有不少于两只鸽子。
我们还可以这么描述,若由n+1个东西放入n个盒子中,则至少有一个盒子有不少于两个物品。
证明:(反证法)假设n个鸽巢中,每个鸽巢里至多有一只鸽子,则鸽子的总数至多为n,但是有n+1只鸽子,矛盾。
[说明]:(1)定理的条件?结论?实质上指出了一种必然性。
(2)鸽巢原理的等价原理:若有n+1个物件放入n个盒子,则至少有一个盒子里有不少于两个的物件。
(3)鸽巢原理的应用关键是:
“认准鸽子”、“构筑鸽巢”。
运用1
从整数1,2,…,100中任选51个整数,证明在选取的这些整数中必存在两个整数,其中之一可被另一个整除。
证明:
对于1到100之间的任何整数,都可以表示为2n.α2^n.α2n.α的形式,其中n≥0,且α为50个奇数1,3,…,99之中的数。故在所任选的51个整数中,至少有两个整数含有相同的奇数因子α,令这两个整数为2r⋅α和2s⋅α,不妨r>s,则2s⋅α能被2r⋅α整除2^r·α和2^s·α,不妨r>s,则2^s·α能被2^r·α整除2r⋅α和2s⋅α,不妨r>s,则2s⋅α能被2r⋅α整除。
- 对于1到100之间的任何整数,都可以表示为2n.α2^n.α2n.α的形式 .这是因为我们知道任何一个数都能有唯一的质因子乘积表示。在这些质因子中,2后边的都是奇数,因此无论多少个奇数的乘积任然是奇数。因此就有上面的结论。
运用二
有9个任给定的整数a1,a2,⋯,a9,试证明必存在两个整数k和l(0≤k≤l≤9),使得ak+1+ak+2+...+al能被9整除有9个任给定的整数 a_1,a_2,⋯,a_9, 试证明必存在两个整数k和l(0≤k ≤l≤9),使得 a_{k+1}+a_{k+2}+...+a_l 能被9整除有9个任给定的整数a1,a2,⋯,a9,试证明必存在两个整数k和l(0≤k≤l≤9),使得ak+1+ak+2+...+al能被9整除。
证明:
首先,如果某个 ai(1≤i≤9)a_i(1≤i≤9)ai(1≤i≤9) 能被9整除,取k=l=i、得证。
否则,由9个整数可得到9个连续的和式: a1,a1+a2,a1+a2+a3,....,a1+a2+⋯+a9a1,a1+a2,a1+a2+a3,....,a1+a2+⋯+a9a1,a1+a2,a1+a2+a3,....,a1+a2+⋯+a9。 如果某个 a1+a2+⋯+ai(1<i≤9)a1+a2+⋯+ai(1<i≤9)a1+a2+⋯+ai(1<i≤9) 能被9整除,即存在两个整数k和l(0≤k≤1=i≤9)k和l(0≤k≤1=i≤9)k和l(0≤k≤1=i≤9),得证。
否则,上述9个和式被9除余数可能为1,2,…,8,由鸽巢原理知最少存在两个和式被9除余数相同,不妨设为 a1+a2+⋯+ak=a∗9+r和a1+a2+⋯+al=9∗b+r,(k<l)a1+a2+⋯+ak = a*9 + r和 a1+a2+⋯+al = 9*b+r,(k<l)a1+a2+⋯+ak=a∗9+r和a1+a2+⋯+al=9∗b+r,(k<l), 那么它们的差 ak1+ak+2+⋯+al=9∗(a−b)(0≤k≤1≤9)a_{k1}+a_{k+2}+⋯+a_l = 9*(a-b)(0≤ k ≤1≤9)ak1+ak+2+⋯+al=9∗(a−b)(0≤k≤1≤9)能够被9整除。得证
- 对于这个例子我们可以推广为: 有K个数,那么必有一个连续的序列的和能被S整除。(S<=K)有K个数,那么必有一个连续的序列的和能被S整除。(S<=K)有K个数,那么必有一个连续的序列的和能被S整除。(S<=K)
运用三
在一个正六边形内任置7点,则至少有两点之间的距离小于该正六边形外接圆的半径在一个正六边形内任置7点,则至少有两点之间的距离小于该正六边形外接圆的半径在一个正六边形内任置7点,则至少有两点之间的距离小于该正六边形外接圆的半径
证明:连接这个正六边形的三条对角线,得到六个小正三角形,每个正三角形的直径都恰是正六边形外接圆的半径。正六边形内置7点,由鸽巢原理知,总有一个三角形内至少有两个点,显然它们的距离小于正六边形外接圆的半径。
鸽巢原理的推广
定理:设m₁,m₂,… ,mn 均为正整数.如果有 m1+m2+⋯+mn−n+1 只鸽子飞回n个鸽巢,则或者第一个鸽巢至少有m,只鸽子,或者第二个鸽巢至少有m,只鸽子,…,或者第n个鸽巢至少有m,只鸽子。
证明:(反证法)若定理结论不成立,即第一个鸽巢至多有 m1−1 只鸽子,第二个鸽巢至多有m2-1只鸽子,…,第n个鸽巢至多有m,-1只鸽子。则鸽子总数至多为
(m1−1)+(m2−1)+⋯+(mn−1)=m1+m2+⋯+mn−n(m_1−1)+(m_2−1)+⋯+(m_n−1) =m_1+m_2+⋯+m_n−n(m1−1)+(m2−1)+⋯+(mn−1)=m1+m2+⋯+mn−n
这与设定的鸽子数 m1+m2+⋯+mn−n+1 相矛盾。得证。
[注意]:
(1)鸽巢原理的一般形式是推广形式的特例,事实上,当 m1=m2=⋯⋯mn=2 时,
m1+m2+⋯+mn−n+1=n+1
(2)鸽巢原理的等价表示:设m,,m2,… mn 为正整数,若有 m1+m2+⋯+mn−n+1 个球放入n个盒子,则或者第一个盒子至少有m,个球,或者第二个盒子至少有m,个球,…,或者第n个盒子至少有m,个球。
推论
- 推论1:如果m1=m2=⋯=mn=r,若将n(r−1)+1个球放入n个盒子中,则至少有一个盒子不会少于r个球。如果 m_1=m_2=⋯=m_n=r, 若将n(r-1)+1个球放入n个盒子中,则至少有一个盒子不会少于r个球。如果m1=m2=⋯=mn=r,若将n(r−1)+1个球放入n个盒子中,则至少有一个盒子不会少于r个球。
- 推论2;如果n个正整数m1,m₂,⋯,mn的平均数m1+m−2+⋯+mn>r−1则m1,m2,⋯,mn中至少有一个正n整数不会小于r。如果n个正整数m_1,m_₂, ⋯,m_n 的平均数 m_1+m-2+⋯+m_n>r−1 则 m_1,m_2,⋯,m_n 中至少有一个正 n 整数不会小于r。如果n个正整数m1,m₂,⋯,mn的平均数m1+m−2+⋯+mn>r−1则m1,m2,⋯,mn中至少有一个正n整数不会小于r。
- 推论3:有m个球放入n个盒子,则至少有一个盒子中有不⌊m−1n⌋+1个球。有m个球放入n个盒子,则至少有一个盒子中有不 \lfloor \frac{m−1}{n} \rfloor +1 个球。有m个球放入n个盒子,则至少有一个盒子中有不⌊nm−1⌋+1个球。
这三个推论在证明的时候很常用,下面举几个例子。
运用一
- 设有两个队Q,和Q,每队都有30人,其中Q队由15名男孩和15名女孩组成,Q,队男、女孩人数不限这两队按序号面对面站好。然后,Q,队不动,Q.队迂回往右错动,每次依序错动一个位置。试证明当Q:错动到某一位置上时,Q,和Q,在对应位置上的两个小孩至少有15对是性别相同的。
Q队迂回错动一圈再回到初始状态时,每个小孩,无论是男孩还是女孩,在对应位置上都与Q₁队的15个小孩同性别。故同性别的总对数为15×30=450。
因此,每个错动位置上同性别的平均对数为 45030=1 15>15-1。由推论2知,必存在某一位置,当Q错动到这个位置上时,则性别相同的小孩至少有15对。
- 无论是男孩还是女孩,在对应位置上都与Q₁队的15个小孩同性别 : 意思是好比我是一个男孩,那么我在转一周之后一定会与对面的15个男孩碰面,那么有15次。
运用二
- 若给定n²+1个不等实数构成的序列a₁,a₂,…an2+1则该序列中至少存在一个由n+1个实数组成的单调递增或单调递减子序列。若给定n²+1个不等实数构成的序列a_₁,a_₂,… a_{n^2+1} 则该序列中至少存在一个由n+1个实数组成的单调递增或单调递减子序列。若给定n²+1个不等实数构成的序列a₁,a₂,…an2+1则该序列中至少存在一个由n+1个实数组成的单调递增或单调递减子序列。
证明:不妨先考虑寻找单调递增子序列。
令mim_imi表示从aia_iai开始最长递增子序列的项数或长度。若有某个mi≥n+1m_i≥n+1mi≥n+1 则定理得证。
否则,注意到给定的序列有 n2+1n^2+1n2+1 个实数,故可产生 n2+1个长度,m1,m2⋯mn2+1,如果全部的mi<n+1,(i=1,2,⋯,n2+1则这些整数必定在1和n之间。相当于把n2+1个球放入n个盒子n^2+1 个长度, m_1,m_2⋯m_{n^2+1},如果全部的 m_i<n+1,(i=1,2,⋯,n^2+1 则这些整数必定在1和n之间。相当于把 n^2+1 个球放入n个盒子n2+1个长度,m1,m2⋯mn2+1,如果全部的mi<n+1,(i=1,2,⋯,n2+1则这些整数必定在1和n之间。相当于把n2+1个球放入n个盒子。
由推论1知,(取m1=m2=⋯=mn2+1=r=n+1,将n(r−1)+1=n2+1个球放入n个盒子中,至少有某个盒子里不少于r个球。)在m1,m2,⋯,mn2+1中至少有r=n+1个数相等。不妨设m1=m2=⋯=mn+1=m,且1≤i1<i2<⋯<in+1≤n2+1,或者说a,,ai2,⋯,ain+1有相同的m值,则必有a1>a1>⋯>ai+1即存在着一个长度为n+1的单调递减子序列。若不然,假如ai1<a₁₂会有mi1=mi2+1≠mi2=m,矛盾(取 m_1=m_2=⋯=m_{n^2+1}=r=n+1, 将 n(r−1)+1=n^2+1 个球放入n个盒子中,至少有某个盒子里不少于r个球。)在m_1, m_2,⋯,m_{n^2+1} 中至少有r=n+1个数相等。不妨设 m_1=m_2=⋯=m_{n+1}=m, 且 1≤i1<i2<⋯<in+1≤n2+1, 或者说a,, ai2,⋯,ain+1 有相同的m值,则必有 a1>a1>⋯>ai+1 即存在着一个长度为n+1的单调递减子序列。若不然,假如 ai_1 <a₁_₂会有 m_{i_1}=m_{i_2}+1≠ m_{i_2} =m, 矛盾(取m1=m2=⋯=mn2+1=r=n+1,将n(r−1)+1=n2+1个球放入n个盒子中,至少有某个盒子里不少于r个球。)在m1,m2,⋯,mn2+1中至少有r=n+1个数相等。不妨设m1=m2=⋯=mn+1=m,且1≤i1<i2<⋯<in+1≤n2+1,或者说a,,ai2,⋯,ain+1有相同的m值,则必有a1>a1>⋯>ai+1即存在着一个长度为n+1的单调递减子序列。若不然,假如ai1<a₁₂会有mi1=mi2+1=mi2=m,矛盾。
鸽巢原理在几何上的作用
- 在边长为1的正方形内任取5个点,那么至少有两个点之间的距离不会超过22\frac{\sqrt{2}}{2}22 .证明:将其4等分在每一个小方格中最远红色部分,为22\frac{\sqrt{2}}{2}22 。对于5个点,由鸽巢原理知至少有两个点在一个格子中,那么这两个点的距离小于22\frac{\sqrt{2}}{2}22
- 在边长为1的等边三角形内任取5个点,至少有两个之间的距离小于12\frac{1}{2}21.证明类似上一题,图形如下
鸽巢原理对于数学的证明
- a1,a2,a3,为三个任意整数,b1b2b3为a1,a2,a3的任一排列,则a1−b1,a2−b2,a3−b3中至少有一个为偶数。a_1,a_2,a_3,为三个任意整数,b_1b_2b_3为a_1,a_2,a_3的任一排列,则a_1-b_1,a_2-b_2,a_3-b_3中至少有一个为偶数。a1,a2,a3,为三个任意整数,b1b2b3为a1,a2,a3的任一排列,则a1−b1,a2−b2,a3−b3中至少有一个为偶数。证明:假设其全为奇数,那么三个奇数相加任然为奇数,我们有a1−b1+a2−b2+a3−b3=0,0不是奇数,故矛盾。a_1-b_1+a_2-b_2+a_3-b_3 = 0,0不是奇数,故矛盾。a1−b1+a2−b2+a3−b3=0,0不是奇数,故矛盾。
- 任取11个整数,求证其中至少有两个它们的差是10的倍数。证明:0也是符合的,由11个数,,它们的差为10的倍数等价于它们对10取余之后的余数相同,由余数为0-9,一共10个,由鸽巢原理知,至少有两个数的余数相同,那么这两个的差符合条件。
- 上一问的推广:设m为一自然数,任取m+1个整数,则其中至少有2个整数的差是m的倍数。
算法之组合数学及其算法篇(二) ----- 鸽巢原理相关推荐
- 鸽巢原理(初识)(纯算法)
http://www.docin.com/p-1352185354.html 一.什么是 鸽巢原理(抽屉原理)若把n个物体放在n - 1个抽屉中,至少有一个抽屉中放了两个物体. 二. 特点 只能用于 ...
- 【离散数学中的数据结构与算法】九 鸽巢原理
鸽巢原理是非常著名的原理,生活正用的也很多. 文章目录 1 简单鸽巢原理的应用 2 定理(一般性鸽巢原理) 2.1 应用 3 总结 1 简单鸽巢原理的应用 定理(鸽巢原理) 若有 n 个鸽巢, n+1 ...
- 组合数学$2鸽巢原理与容斥原理
C2 鸽巢与容斥 S1 鸽巢原理 1)鸽巢定理: q i > 0 , ∑ i = 1 n q i − n + 1 q_i\gt 0, \sum\limits_{i=1}^n q_i -n+1 q ...
- 鸽巢原理分析、实用技巧、部分定理证明以及组合数学学习心路历程
鸽巢原理 天上有十个鸽子,这十个鸽子要飞到九个鸽巢里,无论怎样飞,我们会发现至少会有一 个鸽巢里面放两个鸽子,这一现象就是我们所说的"鸽巢原理".鸽巢定理由狄里克利于1834 ...
- 组合数学—容斥原理与鸽巢原理
目录 一 写在开头 二 容斥原理 三 鸽巢原理 四 Ramsey定理 五 Burnside引理与波利亚定理 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 写在开头 本文内容为<组合数 ...
- 【组合数学】鸽巢原理 ( 鸽巢原理简单形式示例 4、5 )
文章目录 一.鸽巢原理简单形式示例 4 二.鸽巢原理简单形式示例 5 一.鸽巢原理简单形式示例 4 假设有 333 个 777 位二进制数 , A:a1a2a3a4a5a6a7A : a_1a_2a_ ...
- 【组合数学】鸽巢原理 ( 鸽巢原理简单形式 | 鸽巢原理简单形式示例 1、2、3 )
文章目录 一.鸽巢原理简单形式 二.鸽巢原理简单形式示例 1 三.鸽巢原理简单形式示例 2 四.鸽巢原理简单形式示例 3 一.鸽巢原理简单形式 鸽巢原理 : 将 n+1n + 1n+1 个物体 放到 ...
- 组合数学(三)鸽巢原理
文章目录 鸽巢原理 广义的鸽巢原理 Ramsey定理 鸽巢原理 先来看鸽巢原理最简单的说明,若有n个鸽巢,n+1个鸽子,则至少有一个巢内有至少两个鸽子. 鸽巢原理主要不是用来计数,但是可以结合反证法来 ...
- 详解鸽巢原理【组合数学】
鸽巢原理的简单形式: 如果要把n+1个物体,放进n个盒子,那么至少有一个盒子包含两个或更多的物体. 证明:用反证法.如果这n个盒子中的每一个都至多含有一个物体,那么物体的最多数量是n.这与我们有n+1 ...
最新文章
- deepin关机卡在图标界面 mysql Community...10min
- MySQL对查询结果排序
- vcruntime140.dll 丢失64位系统(mysql8安装失败提示)
- Idea打Jar包的坑,工程使用ali druid 等ali组件
- (1-1)line-height的定义和行内框盒子模型
- Activity生命周期方法的调用顺序project与測试日志
- jQuery静态方法(each、map、isFunction, isWindow, isArray, .trim(), .holdReady())
- MFC基础教程之窗口定义(一)
- 在线运行此php解密navicat导出的密码!(用于navicat已经连接数据库但是忘记了密码)
- Tera Term简单配置
- docker pull 流程
- 手把手教你做小米商城-商品展示页面
- 计算机处理器哪个最好,电脑处理器,哪个比较好
- 如何快速搭建红队练习靶场
- 集成seata到springboot,cloud项目,找不到事务分组
- 记录一次渗透测试算命网站
- MySQL-LOCATE和FIND_IN_SET函数
- GDAL python教程基础篇(4)OGR拷贝方法
- Android二维码识别率优化,Android Zxing 转换竖屏扫描且提高识别率的方法
- 非抽样小波变换 matlab,基于Matlab和Python的非采样离散小波变换
热门文章
- html标签anchor,浏览器端-W3School-HTML:HTML DOM Anchor 对象
- 开户oracle监听,R12:银行账户开户人?
- html怎么做半圆形按钮,css3做出半圆弧线
- Intel Realsense D400系列后面的盖子是干嘛用的?
- 浅谈AQS(AbstractQueuedSynchronizer,同步队列)
- Edward Gaming, the Champion 字符串,模拟(2021.11.沈阳)
- 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(精灵图,字体图标,技巧)
- 期末Java面向对象程序设计复习稳过不挂指南(更新中)
- 数学建模c语言仿真软件,数学建模十五大经典数学模型
- mybatis-plus自定义mapper报org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)