抽屉原理可以说是组合数学中最简单易懂的一个原理了,其最简单最原始的一个表达形式:对于n本书放到n-1个抽屉中,保证每个抽屉都要有书,则必存在一个抽屉中有2本书。但是这个简单的原理在很多问题中都能够巧妙的应用到,融合将问题一步步抽象转化来接近抽屉原理的原始模型,是用好抽屉原理的关键。

问题一:两个半径相等的圆盘上各有一个内接正2n边形,每个正2n边形的顶点有一半染上黄色,一般染上蓝色,将这一个圆盘放在另一个圆盘上并使得两个正2n边形的顶点均重合,这样得到2n对顶点,如果一对顶点中两个重合的顶点颜色相同,则称其为“匹配点对”。证明:存在一种放置方式,使得至少有n对匹配点对。

证明:我们首先从任意一种重合方式开始,用a1表示当前方式含有的匹配点对的个数,然后我们将其中一个圆盘旋转2n - 1次,每次旋转的角度π/n,这样我们便得到了多有的放置方法——{a1,a2,a3……a(2n)}。考察所有情况匹配点对的总和,利用简单的计数原理,我们得到等式:a1 + a2 + a3+……+a(2n) = 2n*n,由此再利用抽屉原理,得证。

问题二:正整数1~200分成50个集合。证明:可以从其中某一个集合中找出三个数,它们形成三角形的三边之长。

证明:我们考虑100~200这101个数字,分到50个集合当中,必然存在3个数字分到某个集合当中,考察分布在[100,200]的整数,任取三个数都是满足三角形三边定理的,得证。

问题三:一次射箭比赛共有30名选手参加。将靶子分为两个区域,规定:射中区域一得10分,射中区域二得5分,未射中靶子不得分,每名选手射16箭。比赛结束后,统计显示射中区域二的箭超过50%,射中区域一和未射中靶子的箭数相同。证明:有两名选手得分相同。

证明:我们设第i个人射中区域一、区域二、未射中的箭数分别是ai、bi、ci.则首先有∑ai = ∑ci < 16*30 /4 = 120.

第i个选手的得分可以这样表示:10ai + 5bi = 5ai + 5(ai + bi) = 5ai + 5(16 - ci) = 80 + 5(ai - ci)。

现在考虑反证法,假设30个选手的分数各不相同,则ai - ci有30个各不相同的取值。考虑到ai - ci∈[-16 , 16],由抽屉原理得,存在满足ai-ci>0或ai - ci < 0的组数大于等于15的情况,我们以ai - ci > 0为例,我们将ai - ci按照严格递增的顺序排列,则有ai - ci >=i , 所以ai >= i.

因此,对于满足ai - ci > 0的ai,有不等式∑ai >= 1 + 2 + 3+……+15 = 120成立,这与已知事实矛盾,因此假设不成立。

证毕。

证明:

《Mathematical Olympiad——组合数学》——抽屉原理的更多相关文章

  1. 《Mathematical Olympiad——组合数学》——染色问题

    恢复  继续关于<Mathematical Olympiad——组合数学>中问题的分析,这一篇文章将介绍有关染色的问题. 问题一: 将一些石头放入10行14列的矩形方格表内,允许在每个单元 ...

  2. 2021.12.06 P1450 [HAOI2008]硬币购物(组合数学+抽屉原理+DP)

    2021.12.06 P1450 [HAOI2008]硬币购物(组合数学+抽屉原理+DP) https://www.luogu.com.cn/problem/P1450 题意: 共有 44 种硬币.面 ...

  3. 《Mathematical Olympiad——组合数学》——操作和游戏

    这篇文章,我们开始对奥数中有关操作和游戏的问题进行分析和讨论,其实在信息学竞赛中涉及到的一些博弈问题(分析必胜策略)的问题(例如巴什博弈.尼姆博弈),本质上来讲,就是组合数学当中的组合游戏,并不是真正 ...

  4. CodeForces485A——Factory(抽屉原理)

    Factory One industrial factory is reforming working plan. The director suggested to set a mythical d ...

  5. uva202:循环小数(循环节+抽屉原理)

    题意: 给出两个数n,m,0<=n,m<=3000,输出n/m的循环小数表示以及循环节长度. 思路: 设立一个r[]数组记录循环小数,u[]记录每次的count,用于标记,小数计算可用 r ...

  6. hdu 3303 Harmony Forever (线段树 + 抽屉原理)

    http://acm.hdu.edu.cn/showproblem.php?pid=3303 Harmony Forever Time Limit: 20000/10000 MS (Java/Othe ...

  7. poj2356 Find a multiple(抽屉原理|鸽巢原理)

    /* 引用过来的 题意: 给出N个数,问其中是否存在M个数使其满足M个数的和是N的倍数,如果有多组解, 随意输出一组即可.若不存在,输出 0. 题解: 首先必须声明的一点是本题是一定是有解的.原理根据 ...

  8. POJ- Find a multiple -(抽屉原理)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6452   Accepted: 2809   Special Judge D ...

  9. 51nod 1103 N的倍数(抽屉原理)

    1103 N的倍数 题目来源: Ural 1302 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍 ...

随机推荐

  1. JAVA除去制定字符的方法

    只需调用replaceAll()方法: public class Test { public static void main(String[] args) { String s= "abc ...

  2. System.Data.DbType的字符串和数据库中字符串类型对应关系

    前两天项目中因为历史原因数据库中的一个字段是varchar类型,在做SQL参数化处理时候默认都是DbType.String, 免得查询出现数据转换,于是做类型一致,搜了下对应关系还没找到,只好自己打开 ...

  3. 拦截器getmodel方法什么时候被调用(没搞懂有什么鸟用,自己搭的项目中用到了这个)

    拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制.Struts2 的预定义拦截器 modelDriven 如果action实 ...

  4. ILMerge合并程序

    在DOS窗口中,进入到ILMerge的安装目录 中 如图所示,之后写合并代码, 使用命令进行捆绑,以如图为例,将CSkin.dll和MyTool.exe捆绑成一个新的newtool.exe文件./ou ...

  5. JAVA开发环境 - 环境变量及配置

    JDK是什么?JRE是什么? JRE(Java Runtime Environment):Java运行环境: JDK(Java Development Kit):Java开发工具包,里面已经包含JRE ...

  6. chapter1-开始(1)

    C++学习小记 之前“看”过C++,但是纯粹只是为了应付考试.现在想重新学习,久仰<C++ primer>大名,书之厚令我生畏,好记性不如烂笔头,遂以博客形式笔记之. 本人编程菜鸟一枚,当 ...

  7. centos7 开机启动某些程序的方法

    针对svn,nginx每次重启后均要手工启动,好麻烦,所以考虑将其做成开机启动,做成服务好麻烦,考虑像windows 一样,放在某个启动项中完成. 打开启动文件后,发现里面文件内容如下: #!/bin ...

  8. Weinre在iOS 7上不工作的原因

    升级到iOS 7 后发现Weinre不能工作了,通过Safari调试发现报错如下: [Error] SecurityError: DOM Exception 18: An attempt was ma ...

  9. JSP执行过程

    JSP执行流程: @1.客户端发出请求. @2.Web容器将JSP转译成Servlet源代码. @3.Web容器将产生的源代码进行编译. @4.Web容器加载编译后的代码并执行. @5.把执行结果响应 ...

  10. ecshop后台根据条件查询后不填充table 返回的json数据,content为空?

    做ecshop后台开发的时,根据条件查询后,利用ajax返回的content json数据内容为空,没有填充table 效果 预期效果 问题: make_json_result($smarty -&g ...