鸽巢原理

(部分内容参考离散数学及其应用 原书第7版 [(美)KENNETH H.ROSEN著;徐六通,杨娟,吴斌])

  1. 狭义鸽巢原理: 如果K+1个或者更多的物体放在k个盒子里,那么至少有一个盒子包含了两个或者更多的物体。
    原理证明:(此处采用反证法)假定k个盒子每个盒子最多包含的物品数量为1个那么总共的个数是k个,与k+1个物体矛盾。
    推论: 一个从有k+1甚至更多的元素的集合到k个元素集合的函数 f 不是一对一函数。(一对一函数概念补充:当且仅当对于 f 定义域中的所有a和b有 f(a)= f(b),蕴含a = b。)
    推论证明: 假设f的陪域中的每个元素y都有一个盒子与之对应的x。但是根据题意中的是有k+1个或者更多的元素,因此,这些盒子里有的至少包含2个或者更多的x元素。这说明 f 不是一对一函数。

  2. 广义鸽巢原理:  把(mn-1)个物体放入n个抽屉中,其中必有一个抽屉中至多有(m—1)个物体。
    该原理的另外一种表述:如果N个物体放入k个盒子里,那么至少有一个盒子包含[N/k](取上限,因为此处不好表示,只好用”[ ]"表示,请谅解)
    (第一种表述)原理证明:(此处采用反证法)若每个抽屉都有不少于m个物体,则总共至少有mn个物体,与题设矛盾,故不可能。
    (第二种表述)原理证明:(此处采用反证法)假设没有一个盒子包含[N/k]多的物体,那么物体的总数是(如图)
    事例:
    证明:对每个整数n,存在一个数是n的倍数且在它的十进制表示中只出现0和1。
    **解答:**令n是正整数, 构造n+1个全是1的数,例如1,11,111,1111…让其中的每个数除以n,因为余数只有n种可能,所以必定有两个数有同样的余数,让这两个数相减得到的结果就可以得出整除n并全是十进制表示只有1和0组成的数。
    事例:

    1). 同年出生的367人中至少有2个人的生日相同。
    :将一年中的365天视为365个抽屉,367个人看作367个物体,由抽屉原理1可以得知:至少有2人的生日相同. 367/365=1…2,1+1=2.

    2). 假设计算机科学实验室有15台工作站和10台服务器。可以用一条电缆直接把工作站连接到服务器。同一时刻只有一条到服务器的直接连接是有效的。我们想保证在任何时刻任何一组不超过10台工作站可以通过直接连接同时访问不同的服务器。尽管我们可以通过将每台工作站直接连接到服务器(使用150条连线),但是达到这个目标所需的最少的直接连接数量是多少呢?
    解: 将工作站分为编号k=1,2,3,4,5…14,15。服务器编号为1,2,3…9,10。那么我们可以假设将前10台工作站先连接到10台服务器,然后将剩下的11,12,13,14,15再连接到10台服务器,总共60条直接连线。证明一下:如果没有60条连线,假设最多有59条连线,那么有一台服务器至多连接在5台工作站。这就意味着剩下的9台服务器要连接10台工作站,这明显不够用了。因此,至少需要60条直接连线,即证。

  3. 鸽巢原理的经典运用 (来源于离散数学及其应用 原书第7版 [(美)KENNETH H.ROSEN著;徐六通,杨娟,吴斌])
    例一: 在边长为1的三角形放5个点,至少有两个点之间的距离<=1/2。
    解析:将一个三角形分为4个三角形,在四个三角形中放5个点,则至少有两个点在同一个三角形中,这两个点之间的距离最长为1/2,得证。
    例二: 某次会议n位代表参加,至少有两个人认识的人数相等。注意认识是相互的。
    解析:首先讨论每个人都至少认识一个人的情况,这种情况下,认识的人数为1到n-1.参加会议的人数n得证。
    假设有人一个人都不认识,这时剩下的人中认识的人的个数只能是1到n-2,人数为n-1.依次类推,知道将所有一个人都不认识的alone people消掉,就产生鸽巢原理的情况。
    例三: 在30天的一个月里,某棒球队一天至少打一场比赛,但至多打45场比赛。证明一定有连续的若干天内这个队恰好打了14场。
    解析: 令Ai是在这个月的第 j 天或第 j 天之前所打的场数。则A1,A2,A3…A30是不同正整数的一个递增序列,其中1<=Ai<=45。而且A1+14,A2+14…A30+14也是不同正整数的递增序列,其中15<=Ai+14<=59.
    60个正整数A1,A2,A3…A30,A1+14…A30+14一共60个数全都小于等于59。因此,由鸽巢原理可得,有两个正整数相等。因为正整数A1,A2…A30都不一样,并且A1+14,A2+14…A30+14也不相同,所以存在下标使得Ai ==Aj+14。这意味着从第 j+1 天到第 i 天恰好打了14场比赛。
    例四: 证明在不超过2n的任意n+1个正整数中一定存在一个正整数被令一个正整数整除。(图片摘抄自离散数学及其应用 原书第7版 [(美)KENNETH H.ROSEN著;徐六通,杨娟,吴斌])

    例五: (图片摘抄自离散数学及其应用 原书第7版 [(美)KENNETH H.ROSEN著;徐六通,杨娟,吴斌])

  4. 拉姆齐数
    在组合数学上, 拉姆齐(Ramsey)定理是要解决以下的问题:要找这样一个最小的数n ,使得n个人中必定有k个人相识或l个人互不相识。
    拉姆齐定理的通俗表述 : 6 个人中至少存在3人相互认识或者相互不认识。该定理等价于证明这6个顶点的完全图的边,用红、蓝二色任意着色,必然至少存在一个红色边三角形,或蓝色边三角形。
    **验证推导:**首先,把这6个人设为A、B、C、D、E、F六个点。由A点可以引出AB、AC、AD、AE、AF五条线段。设:如果两个人认识,则设这两个人组成的线段为红色;如果两个人不认识,则设这两个人组成的线段为蓝色。
    由抽屉原理可知:这五条线段中至少有三条是同色的。不妨设AB、AC、AD为红色。若BC或CD为红色,则结论显然成立。若BC和CD均为蓝色,则若BD为红色,则一定有三个人相互认识;若BD为蓝色,则一定有三个人相互不认识

    (摘自百度百科)
    此博文仅供学习笔记整理使用,若有侵权,请联系删除,谢谢)

鸽巢原理(狄利克雷抽屉原理)资料整合相关推荐

  1. 鸽巢原理(抽屉原理)

    鸽巢原理和抽屉原理是同义词,已合并. 抽屉原理 百科名片 抽屉原理 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面放两个苹果.这一现象就是我们所说的" ...

  2. 容斥定理与鸽巢定理(抽屉定理)

    定义 在计数时,必须注意没有重复,没有遗漏.为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时 ...

  3. 鸽巢原理(抽屉原理)的详解

    抽屉原理 百科名片 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面放两个苹果.这一现象就是我们所说的"抽屉原理". 抽屉原理的一般含义为: ...

  4. 【51Nod - 1103】N的倍数 (思维,鸽巢原理也叫抽屉定理,求倍数问题取模)

    题干: 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数. 例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数. I ...

  5. (鸽巢原理,又称抽屉原理)NYOJ 417 死神来了

    死神来了 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 有一天,王小子在遨游世界时,遇到了一场自然灾害.一个人孤独的在一个岛上,没有吃的没有喝的.在他饥寒交迫将要死亡时 ...

  6. 抽屉原理(鸽巢原理)

    一.抽屉原理初介绍: 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果.这一现象就是我们所说的"抽屉原理". 抽屉原理的一般含 ...

  7. 算法之组合数学及其算法篇(二) ----- 鸽巢原理

    鸽巢原理 前言 鸽巢原理 运用1 运用二 运用三 鸽巢原理的推广 推论 运用一 运用二 鸽巢原理在几何上的作用 鸽巢原理对于数学的证明 前言 鸽巢原理又称抽屉原理或鞋盒原理,这个原理最早是由狄利克雷( ...

  8. java实现Ramsey原理_鸽巢原理及其扩展——Ramsey定理

    第一部分:鸽巢原理 咕咕咕!!! 然鹅大家还是最熟悉我→ a数组:but 我也很重要 $:我好像也出现不少次 以上纯属灌水 文章简叙:鸽巢原理对初赛时的问题求解以及复赛的数论题目都有启发意义.直接的初 ...

  9. ZOJ - 2955 Interesting Dart Game(鸽巢原理+完全背包)

    题目链接:点击查看 题目大意:给定M个不同的得分方式,以及需要得到N分,至少需要多少次(多余N都不行,只能严格等于N) 思路:第一反应肯定是完全背包,可是N给到了1e9的程度,开数组肯定是开不了的,这 ...

最新文章

  1. opencv源码解析之(6):hog源码分析
  2. cefsharp 手机模式_微信“蓝光模式”保护眼睛
  3. xunsearch安装使用
  4. Java枚举:您拥有优雅,优雅和力量,这就是我所爱!
  5. Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1
  6. python以运行效率高著称吗_提升Python程序运行效率的6个方法
  7. 设计模式(结构型模式)——装饰模式(Decorator)
  8. 数据结构(Splay平衡树):COGS 339. [NOI2005] 维护数列
  9. 判断深度学习模型的稳定性_基于深度学习的三维模型检索算法研究
  10. 复习:关于类的继承和构造函数
  11. 上平台! 车联网智能化晋级高段位!
  12. 抖音一个老人和一个机器人歌曲_抖音M哥很火的歌曲有哪些
  13. mysql中的事务和锁_MySQL中的事务和锁
  14. python中code函数是干嘛的_[Code] Python简单小知识
  15. 微信小程序星星评分代码片段(含半星)
  16. 现阶段云计算的市场运用
  17. 超级计算机还是超级烂尾?天河一号闲置近1年
  18. 从AWS S3换成阿里云OSS存储所踩的坑
  19. java处理Oracle Clob Blob类型数据
  20. GO/KEGG富集分析泡泡图中为什么基因的数目是小数?

热门文章

  1. 什么是前端开发领域的 Page Blink 和 Page Flicker
  2. 质量检测(c++代码)
  3. 如何在米拓的metinfo的模板中加入自己定义的样式
  4. idea+Gradle使用教程
  5. BOOTP:引导程序协议
  6. Java并发编程--学会他就能抵挡千军万马
  7. 【java】jdb调试java代码
  8. Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数
  9. 手机号中间4位数隐藏或者只显示末尾四位数
  10. 职场“年轻崇拜”?45岁程序员精通各种技术体系,却连个面试机会都没有