鸽巢原理(Pigeonhole Principle)的基本定理
If n + 1 objects are distributed into n boxes, then at least one box contains two or more of the objects.
一个简单的例子:13个人里至少有两个人的生日是同一月的。
鸽巢原理的相关原理: If n objects are put into n boxes and no box gets more than one object, then each box has an object in it.
Let X and Y be finite sets and let f : X -> Y be a function from X to Y. There are following conclutions:
• If X has more elements than Y, then f is not one-to-one.
• If X and Y have the same number of elements and f is onto(映射的), then f is one-toone.
• If X and Y have the same number of elements and f is one-to-one, then f is onto.
应用:
同余序列问题:2,4,6,3,5,5,6是一个数列,定义Sum(i)=a1+a2+……+ai,那么对应的Sum(i)应该是:2,6,12,15,20,25,31.Sum数列Mod(7)结果是:2,6,5,1,6,4,3.有两个数的Sum是同余的,即Sum(2)=q1*7+r.  Sum(5)=q2*7+r.那么有Sum(5)-Sum(2)=(q2-q1)*7。hence: (6+3+5)%7=0.
应用:一名棋手有11周的时间来准备一场比赛,它决定每天至少训练一场,为了保证不过量,每周不超过12场。证明存在着连续m天这名选手会训练21场。
解答:设si是从第一天到第i天的训练次数,有1<=s1<s2<s3<……<s77<=132. -->22<=s1+21<s2+21<s3+21<……<s77+21<=153. s1,s2……s1+21,s2+21……s77+21共是154个数字,然而所有的数字值必是不超过153的,所以一定有两个数字是相等的。sj+21=si --> j+1,j+2,……,i天共进行了21场比赛。
应用:从整数1,2,3……200中选出101个数,一定有2个数字a,b可以满足这样的条件:a%b=0 or b%a=0。
解答:由素因子分解相关的知识可知,一个数字能被写成2^k*a,其中k>=0,a为奇数。分析可知:在1——200的范围内有奇数:1,3,5……199一共100个。选出的101个数字一定有两个拥有相同的奇数因子a。那么这两个数字相除的结果是2^(k1-k2),即满足题干条件。
鸽巢原理加强版[Pigeonhole Principle(Strong Form)]
Let ql, q2,……,qn be positive integers. If ql + q2 + ... + qn - n + 1 objects are distributed into n boxes, then either the first box contains at least ql objects, or the second box contains
at least q2 objects, ... , or the nth box contains at least qn objects.
推论:Let n and r be positive integers. If n(r -1) + 1 objects are distributed into n boxes, then at least one of the boxes contains r or more of the objects.
另一种说法:If the average of n nonnegative integers ml, m2, ... ,mn is greater than r - 1, that is,(ml + m2 + ... + mn)/n>r-1, then at least one of the integers is greater than or equal
to r.
Another averaging principle:  If the average of n nonnegative integers ml, m2, ... , mn is at least equal to r, then at least one of the integers ml, m2, ... , mn satisfies mi >= r.
例子:试着证明从{1,2,3……kn}中选出n+1个数,总存在两个数它们最多相差k-1.
解答:将所有数字分成n组:{1,2,3……k},{k+1,k+2,k+3……2k},{2k+1,2k+2……3k}……{(n-1)k+1,(n-1)k+2……kn}。选出的n+1个数字一定有两个属于同一组,那么他们的差最大是k-1.
例子:路易·波萨是匈牙利数学家, 在他11岁时匈牙利大数学家厄杜斯给他出了个问题: “如果你手头上有n+1个整数,这些整数是小于或等于2n的,那么你一定会有一对数是互素的。你知道这是什么原因吗?”波萨仅思考了半分钟就巧妙地回答了这个问题。
解答:假设这个说法是错误的,那么取最大数和最小数:a(n+1)和a1,有a1>=2,a(n+1)一定大于等于(n+2)*2.
例子:把1至10这十数字随机的排成一个圆圈,证明必有一个三相邻数字之和大于等于17.
解答:把1至10这十个数字随机排成一个圆圈,从中任取三个相邻数字的方法有10种。这10种的总和等于:3*(1+2+3+……+10)=3*11/2*10。那么,平均相邻3数和是3*11/2*10/10=16.5>16. 所以呢,一定有一个三相邻数字之和大于等于17.
Application 9.Show that every sequence aI, a2, ... ,an2+1 of n2 + 1 real numbers contains either an increasing subsequence of length n + 1 or a decreasing subsequence of length n + 1.证明见图:

利用余数分类构造“鸽巢”:
试证明任意给定52个整数,它们之中必有2个数,其和或差是100的倍数(即被100整除)
解答:用0,1,2,…,99这100个余数来构造鸽巢,将它们分为51组,构造出51个鸽巢:{0},{1,99},{2, 98},…{49,51},{50}。由鸽巢原理,这52个整数分别除以100产生的52个余数r1,r2,…r52中必有两个余数落在同一组中。

鸽巢原理的推广---Ramsey定理的具体内容可以查阅《Introductory Combinatorics Fifth Edition》--THE PIGEONHOLE PRINCIPLE--A THEOREM OF RAMSEY

鸽巢原理(Pigeonhole Principle)相关推荐

  1. 【离散数学】集合论 第四章 函数与集合(3) 鸽巢原理

    本文属于「离散数学」系列文章之一.这一系列着重于离散数学的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数学知识, ...

  2. 经典排序算法 - 鸽巢排序Pigeonhole sort

    经典排序算法 - 鸽巢排序Pigeonhole sort 原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了] 鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现 ...

  3. 鸽巢原理分析、实用技巧、部分定理证明以及组合数学学习心路历程

    鸽巢原理 天上有十个鸽子,这十个鸽子要飞到九个鸽巢里,无论怎样飞,我们会发现至少会有一   个鸽巢里面放两个鸽子,这一现象就是我们所说的"鸽巢原理".鸽巢定理由狄里克利于1834 ...

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

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

  5. 【组合数学】鸽巢原理 ( 鸽巢原理简单形式示例 4、5 )

    文章目录 一.鸽巢原理简单形式示例 4 二.鸽巢原理简单形式示例 5 一.鸽巢原理简单形式示例 4 假设有 333 个 777 位二进制数 , A:a1a2a3a4a5a6a7A : a_1a_2a_ ...

  6. 【组合数学】鸽巢原理 ( 鸽巢原理简单形式 | 鸽巢原理简单形式示例 1、2、3 )

    文章目录 一.鸽巢原理简单形式 二.鸽巢原理简单形式示例 1 三.鸽巢原理简单形式示例 2 四.鸽巢原理简单形式示例 3 一.鸽巢原理简单形式 鸽巢原理 : 将 n+1n + 1n+1 个物体 放到 ...

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

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

  8. C语言鸽巢排序pigeonhole sort算法(附完整源码)

    鸽巢排序pigeonhole sort算法 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,main函数测试) 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,ma ...

  9. 兰州大学第一届『飞马杯』程序设计竞赛 - ★★平形四边行★★(鸽巢原理+暴力)

    题目链接:点击查看 题目大意:二维平面坐标系上给出 nnn 个点,现在需要求出四个点,满足四个点可以组成可退化的平行四边形 题目分析:因为坐标的范围很小,所以瞬间想到了上周刷到的一道题目的模型: Co ...

最新文章

  1. nutch2.1+mysql报错及解决
  2. MapReduce运行原理和过程
  3. windows ubuntu Android studio安装好启动没反应解决方法
  4. android 开发 时间选择器TimePicker的使用
  5. linux内核 mpls,将MPLS编译进linux内核中
  6. 机器学习中基本线性代数
  7. 为什么你应该用Yarn而不是Npm来管理你的项目依赖?
  8. python 与或非_Python |Python 从入门到精通(放弃)之注释、行与缩进、多行语句...
  9. jQuery打造智能提示插件
  10. linux arm 携程,如何安装ARM toolchain
  11. 上项线体表位置_LPL退役选手总结最难打的四个位置:TES辅助RNG上单在列
  12. 【Python】cmd指令安装python第三方库的几种方法
  13. malloc(): corrupted top size 解决
  14. NORDIC Thing:52 Android App 学习之一:THINGY 52 节点与手机的蓝牙识别、过滤及通信建立
  15. (PTA数据结构与算法) 6-2 顺序表操作集 ——请告诉我什么是顺序表!!!
  16. 岭回归实现鲍鱼年龄预测 MATLAB实现
  17. 【真的】git pull --all 或 git fetch --all取到自己本地所有分支的最新内容
  18. python copy.deepcopy()深入解读
  19. Promise封装微信小程request请求
  20. ES集群宕机后处理——重新分配shards,负载均衡

热门文章

  1. 表单提交 form选择
  2. Linux下非ROOT权限安装MySQL(亲测有效)
  3. BiliBili-IJKPlayer播放器源码分析(一)
  4. java se与jdk的关系_JDK与Java SE/EE/ME的区别
  5. 量化金融分析AQF(10):均值回归 - Mean Reverting Strategy
  6. 19 南京区域赛 F. Paper Grading
  7. IAR工具中扩展名为icf的文件
  8. 2020最新web前端开发学习资料,全套源码无加密网盘下载
  9. python+nodejs+php+springboot+vue英雄联盟的游戏代练系统
  10. 怎么让员工服从管理_怎样做到让员工服从的管理者